2011-06-03 72 views
0

晚上好。 ingore所有其他元素,我想在每個foreach中獲得第一個圖像。如何?基本的json解碼問題

$data = json_decode($json,true); 
foreach ($data['data'][0] as $image) { 
     echo '<img src="'.$image['images'][0]['source'][0].'" />'; 
    } 

json樹太大,超過了字母粘貼的限制。

Oops! Your question couldn't be submitted because: 

    body is limited to 30000 characters; you entered 68494 

所以這裏是url u能得到JSON樹https://graph.facebook.com/5550296508/photos

和U可以在http://jsonlint.com/粘貼看結構調查好。感謝名單。

+0

的JSON數據在這裏不是你的問題。你展示的結構只有10K的大小。所以錯誤信息('限制30000個字符)來自別處。解釋你正在試圖用html輸出做什麼。 – mario 2011-06-03 21:45:53

+0

@馬里奧,請問,因爲帖子錯誤,不是json問題。我的問題是獲取'data [0]'foreach中的所有第一個圖像,所有'_n.jpg'結束圖像。並灌輸所有其他元素。只有圖像。謝謝。 – 2011-06-03 21:53:34

回答

1

隨着json_decode{}(對象)將成爲一個object(stdClass)和每[](數組)將成爲一個array。所以:

$data->data[0]->images[0]->source 

是你需要的,以達到第一個圖像源。

編輯:json_decode第二個參數是true,它將成爲一個關聯數組,並且它將是這樣的:

$data['data'][0]['images'][0]['source'] 

要獲取的所有圖像:

$images = array(); 
foreach ($data['data'] as $d) 
{ 
    foreach ($d['images'] as $i) 
    { 
     $images[] = $i['source']; 
    } 
} 
+0

如何獲取所有圖像?在foreach data [0]中有許多'images [0] - > source',有些是空的,有些是有圖像的? – 2011-06-03 21:43:59

+0

所以如果寫入一個foreach,它將錯誤的取回數據。 'foreach($ data ['data'] [0] as $ image){echo'';}'爲什麼? – 2011-06-03 21:49:46

+0

您在這裏評論的內容不正確。我將我的版本添加到答案中,但這裏是您的最後一個片段,已更正:'foreach($ data ['data'] as $ d){echo''; }' – aorcsik 2011-06-03 21:54:51