2012-08-02 59 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