Как получить массив, используя вложенный foreach?

#php #arrays #json #laravel #foreach

#php #массивы #json #laravel #foreach

Вопрос:

Я получаю данные из файла 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

Комментарии:

1. TEXT1 — это значение! sample1 и sample2 являются ключами массива assoc?? Может быть, если вы покажете нам, что вы пытаетесь получить, мы могли бы лучше понять вопрос

2. И в чем проблема с данным кодом? Что-нибудь не работает? Если это так, что вы пытались сделать, чтобы это работало?

Ответ №1:

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

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

        $lastArray = [];
        foreach ($array as $key => $row1){
            $lastArray[$key] = $row1;
    }

  

Ответ №2:

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

вы можете прочитать об этом здесь: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);
  

Удачи,