json解码 - 从对象获取单个数组?

时间:2015-07-16 00:54:18

标签: php arrays json

我有一个json文件,我使用json_decode解码。 json文件是一个包含两个数组的对象。我只想要第一个阵列,但我很难搞清楚如何。

Json文件

{
   "app":{
      "available":{
         "stats":[
            {
               "name":"the name",
               "at":"url"
            },
            {
               "name":"the name",
               "at":"url"
            }
         ],
         "stats2":[
            {
               "name":"the name",
               "at":"url"
            },
            {
               "name":"the name",
               "at":"url"
            }
         ]
      }
   }
}

我用

foreach($data3['app']['available'] as $name => $value)
{
    foreach($value as $entry)
    {
        echo $entry['name'];
    }
}

输出我从stats1和stats2数组中得到每个名字。我只想要stats1数组的名字,而不是stats2。如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

因为app->中有两个数组:stats和stats2

如果您只对统计数据感兴趣,为什么不尝试:

foreach($data3['app']['available']['stats'] as $name => $value)

<强> __ UPDATE __

请试试这个

$in = '{"app":{"available":{"stats": [{"name":"the name","at":"url"},{"name":"the name", "at":"url"}],"stats2":[{"name":"the name","at":"url"},{"name":"the name","at":"url"}]}}}';

$obj = (array) json_decode($in, true);

foreach($obj['app']['available']['stats'] as $value)
{
foreach($value as $e => $v)
    {
     echo ($value['name'] );
     echo ("\r");
    }

}