Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用PHP读取嵌套的JSON字符串_Php_Json - Fatal编程技术网

如何用PHP读取嵌套的JSON字符串

如何用PHP读取嵌套的JSON字符串,php,json,Php,Json,我在使用PHP读取JSON文件时遇到问题。我试过几种方法,但似乎我无法真正读取数据。实现这一目标的最佳方式是什么?我在下面提供了我的JSON数据示例: { "UNIQUE ID":{ "data":"123", "more_data":"456" }, "UNIQUE ID":{ "data":"789", "more_data":"123" } } 我当前的PHP文件如下所示: <?php

我在使用PHP读取JSON文件时遇到问题。我试过几种方法,但似乎我无法真正读取数据。实现这一目标的最佳方式是什么?我在下面提供了我的JSON数据示例:

{
    "UNIQUE ID":{
        "data":"123",
        "more_data":"456"
    },
    "UNIQUE ID":{
        "data":"789",
        "more_data":"123"
    }
}
我当前的PHP文件如下所示:

<?php

    $json = file_get_contents("./data/example.json");
    $data = json_decode($json, true);

    foreach($data as $single) {
        echo $single['UNIQUE ID'][0]['data'];
    }

?>


我没有收到任何错误,只是没有显示任何数据。
var\u dump($data)
确实显示它正确加载了JSON。

在这样的哈希数组上迭代非常容易:

$json = file_get_contents('./data/example.json');
$data = json_decode($json, true);

foreach ($data as $uniqueId => $array) {
    $data = $array['data'];
    $more_data = $array['more_data'];

    // go bananas here
}

您试图访问数据,就好像您没有使用foreach在数组上迭代一样

工作示例:


$single['UNIQUE ID']['data']使用
变量转储($data),这样您就可以看到您在这里处理的数据结构实际上是什么。。。不知道额外的[0]是从哪里来的。这个JSON不会很好地工作,因为里面的两个对象都由同一个键引用,所以第二个将覆盖第一个。实际上,最终得到的数组只包含一个元素可能会有所帮助。使用
$single['data']
@sk11z00,因为
$single
已经是
$data['UNIQUE ID']
,所以不能再次访问
'UNIQUE ID'
键。
<?php
foreach($data as $uniqueID => $single) {
    echo $single['data'];
}