2012-11-13 87 views
0

有人可以幫助我幫助我顯示1/2以上的結果嗎?Foreach Loop抓取JSON數據

這裏是我的代碼:

$url = "http://otter.topsy.com/search.json?q=debt%20management&window=a&perpage=10"; 
$jsonfile = file_get_contents($url); 
$obj = json_decode($jsonfile); 


foreach($obj as $result) { 
    echo $obj->response->list[0]->trackback_permalink; 
    echo "<br />"; 
    echo $obj->response->list[0]->trackback_author_nick; 
    echo "<br />"; 
    echo $obj->response->list[0]->content; 
    echo "<br /><br />"; 

} 
?> 

*注:我已經採取了我的API密鑰。

使用該代碼它顯示了兩個相同的結果。

任何人都有解決方案嗎?

+0

沒有足夠的信息。請編輯您的問題並提供您收到的JSON結構。 – arkascha

+0

您可以在此查看:http://otter.topsy.com/search.json?q=debt%20management&window=a&perpage=10 – Blake

回答

1

您遍歷$obj,它是包含兩個元素(requestresponse)的頂級對象。由於您可能想遍歷響應列表,因此您需要:

foreach($obj->response->list as $result) { 
    echo $result->trackback_permalink; 
    echo "<br />"; 
    echo $result->trackback_author_nick; 
    echo "<br />"; 
    echo $result->content; 
    echo "<br /><br />"; 
} 
+0

絕對完美。謝謝你。 Im新的JSON,所以我不知道簡單的東西等..非常感謝這個雖然:) - 真的很感激。 – Blake

+0

'var_dump'和'print_r'是你的朋友,仔細看看PHP中的數據結構。 – ThiefMaster

0

啊,剛看到它:

刪除$obj++!您在每次循環運行期間增加兩次。一旦由foreach()循環迭代本身,並且一次通過手動迭代。

+0

感謝您的回覆。我忘了帶出來,即使這樣,它仍然只顯示2個結果? – Blake