循环json没有数组PHP

时间:2018-03-26 04:20:31

标签: php json decode

我有json,如下所示,我如何循环每个id

{
    "id1": {
        "AreaN": "\u30ef\u30fc\u30eb\u30c9\u30d0\u30b6\u30fc\u30eb",
        "AreaM": "\uff9c\uff70\uff99\uff84\uff9e\uff8a\uff9e\uff7b\uff9e\uff70\uff99"
    },
    "id2": {
        "AreaN": "\u30ef\u30fc\u30eb\u30c9\u30d0\u30b6\u30fc\u30eb",
        "AreaM": "\uff9c\uff70\uff99\uff84\uff9e\uff8a\uff9e\uff7b\uff9e\uff70\uff99"
    }
}

我试过但它没有得到所有的ID,我无法改变json。

$json = json_decode($doc);
if( count($json) > 0 )
{
    foreach($json as $area)
    {

    }
}

在我的情况下,我想要的ID不在数组中。是否可以循环id并将它们保留为对象,我更喜欢对象访问而不是使用方括号。

1 个答案:

答案 0 :(得分:2)

$json = json_decode($doc, 1);
foreach ($json as $id => $area) {
    // $id is "id1", "id2"
    // $area is AreaN & AreaM
}

json_decode的第二个参数如果为true将返回为数组,否则将为对象