Как получить массив, используя вложенный foreach? - PullRequest
0 голосов
/ 24 апреля 2019

Я получаю данные из файла json веб-сайта.

Это пример данных json с URL.

Array
(
    [1] => TEXT1
    [2] => Array
        (
            [0] => Array
                (
                    [sample1] => text1
                    [sample2] => text2
)
)
)

Я пытался использовать этот код.

$json = file_get_contents('http://www.example.com/file.json');
$datas = json_decode($json,true);        


foreach ($datas as $key => $row) {

            $data[] = $row;
            //unset($tempData[1])
            foreach ($datas as $key2 => $row1) {
                $data1[] = $row1;
                unset($data1[0]);
            }
        }

print_r($data1); exit;

Я хочу получить данные первого массива TEXT1 и других данных массива sample1 и sample2

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

просто делюсь своим ответом на мой вопрос и он работает сейчас.

 foreach ($datas as $row) {
            $tempData = $row;
        }
        $json = json_encode($tempData);
        $array = json_decode($json, true);

        $lastArray = [];
        foreach ($array as $key => $row1){
            $lastArray[$key] = $row1;
    }
}
0 голосов
/ 24 апреля 2019

Просто вы можете получить данные в квадратных скобках в соответствии с их индексом внутри массива.

Вы можете прочитать об этом здесь: https://www.w3schools.com/php/php_arrays.asp

и для доступа к нужным индексам здесь код

$json = file_get_contents('http://www.example.com/file.json');
$data = json_decode($json,true);        

$data[1]  // TEXT1
$data[2][0]['sample1'] // sample1
$data[2][0]['sample2'] // sample1

Для динамического получения данных вы можете использовать рекурсивную технику

$json = file_get_contents('http://www.example.com/file.json');
$data = json_decode($json,true);     
$newData = new RecursiveIteratorIterator(new RecursiveArrayIterator($data));   //  Standard PHP Library (SPL) 

print_r($newData);

Удачи,

...