2012-08-02 76 views
1

我很难用json_decode()嵌套数组。我正在尝试获取团队名称列表。PHP和嵌套阵列的问题

下面是实际的数组:http://pastebin.com/eMqMcucN

如果你看一下阵列,有三支球队。第一队包含我不需要的数据,但并不完整(但我可以获得球队名称)。它是嵌套的数组,其中团队拥有完整的数据让我获得。我想得到的是另外两个队名,并且忽略了第一队,因为它没有嵌套数组,也没有真实的细节。然而,我没有问题,因为它没有嵌套第一队的名字。

任何帮助/方向将不胜感激。这是我目前在上面的数组中使用的。

行“echo'name:'。$ sd-> name;”抛出“警告:为foreach()提供的无效参数”的错误。我尝试过变化,但没有运气。

$obj=json_decode($json); 
$data = $obj->fantasy_content->users->{'0'}->user[1]->teams; 
$userguid = $obj->fantasy_content->users->{'0'}->user->{'0'}; 

echo '<pre>'; 
foreach($data as $d){ 

    $subdata = $d->team; 

    foreach($subdata as $sd){ 
     echo 'name: ' . $sd->name; //this line errors 
    } 
} 

回答

1

你应该去两个层次更深,team下还有另一个阵列,只有这个数组包含name数组:

[team] => Array 
       (
        [0] => Array (
         [0] => stdClass Object 
          (
           [team_key] => 273.l.73856.t.9 
          ) 

         [1] => stdClass Object 
          (
           [team_id] => 9 
          ) 

         [2] => stdClass Object 
         (
          [name] => Team API 
         ) 
         ... 
        ) 
       ) 
+0

感谢。我认为这是我有困难的地方。我想我需要采取这一行... $ subdata = $ d-> team;还有一些如何进一步钻取。但是,接下来的两个级别似乎没有一个钩子,因为它们只是[0],[1],然后它进入[0],[1],[2]等...各组。这有意义吗? – joeyd 2012-08-02 18:35:04

+0

是的,你需要使用'foreach'迭代内部数组 - 我没有看到任何方式(除非你开始使用类和对象!)。 – alfasin 2012-08-02 18:57:45