如何使用嵌套的foreach获得数组?

时间:2019-04-24 15:58:50

标签: php arrays json laravel foreach

我正在从网站的json文件中获取数据。

这是来自URL的示例json数据。

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 :(得分:0)

只需按方括号即可根据数组中的索引检索数据。

您可以在这里阅读有关内容:Readme

并在此处访问所需索引的代码

$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);

祝你好运

答案 1 :(得分:0)

只分享我对我的问题的回答及其当前的工作。

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

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