2013-01-12 137 views
0

基本上我有一個獲取json的file_get_contents,然後我解碼json。我的問題是使用Foreach()來循環遍歷所有的數組,它似乎沒有這樣做,我通過使用print_r()確保數組不是空的。這個腳本非常類似於我可以正常工作的腳本,但由於某種原因,這個腳本無法工作。Foreach()不通過陣列循環

foreach($items['item'] as $ind=>$d2){     
     $id = $d2['id']; 
} 

這是我的代碼,我真的不知道爲什麼它不工作。

PS。我試着做

$i = 0; 
foreach($items[$i] as $ind=>$d2){ 
     $id = $d2['id']; 
     $i++; 
} 

而且只有在停止前沒有錯誤之前到達第9個數組。

感謝,

Archey

+0

郵政JSON被解碼爲$物品請。 – sqreept

+0

您可以發佈'$ items ['item']'的值嗎? – BenM

+3

您大概知道該代碼不會*做任何事情?在循環中重複指定相同的變量除了將該變量設置爲最後一個值之外不會實現任何其他效果。通過這樣的問題顯示示例輸入和當前/期望輸出通常是一個好主意。 – DaveRandom

回答

2
foreach($items as $ind=>$d2){ 
     $id = $d2['id']; 
} 

你能試試這個嗎? 我不認爲你需要填寫該密鑰。

http://php.net/foreach

+1

謝謝!這工作,不知道爲什麼因爲在我的其他腳本即時通訊使用'$ items ['item']' – Archey

+0

很高興我可以幫助你這個簡單的伎倆! –

0

json_decode可能返回U A stdClass的,而不是陣列

+0

你爲什麼會這麼想?順便說一下,它不是。 [json_decode](http://us1.php.net/manual/en/function.json-decode.php) – Anthony

+0

我必須假設,直到你發佈代碼,你是什麼json_decode和波紋管 –

+0

你可以強制它返回一個關聯數組而不是stdClass類型的對象,但是默認情況下,如果你傳遞一個json對象(或者json_objects數組),你在解碼時會得到stdClass對象。 – Mike