2013-07-03 81 views
0

嗨我想循環通過一個json數組的對象,但我從字面上沒有得到任何回報,這是我的嘗試。循環通過json數組的對象問題

$jsonurl = 'http://eol.org/api/search/1.0.json?q='."$searchvar".'&page=1&exact=false&  filter_by_taxon_concept_id=&filter_by_hierarchy_entry_id=&filter_by_string=&cache_ttl='; 
$json = file_get_contents($jsonurl,0,null,null); 
$json_output = json_decode($json); 

foreach ($json_output->dataObjects as $objects){ 
    print "{$objects->title}\n"; 
} 

這裏是實際的json數組的結構。

array 

0 object 
    id  19076 
    title Vulpes 
    link http://eol.org/19076?action=overview&controller=taxa 
    content Arctic foxes; kit foxes; red foxes; red fox 

回答

2

嘗試:

foreach ($json_output->results as $object){ 
    print "{$object->title}\n"; 
} 
+0

和它的工作!謝謝你好先生 – Squirtle

+0

不客氣。問題在於你的數組名稱,它在JSON中被定義爲「結果」而不是「數據對象」 –

+0

標記爲正確答案? –

0

我希望這能對您有所幫助

嘗試鍵入鑄有object

foreach ($json_output->dataObjects as $objects){ 

讓我知道如果我能幫助你更

1

您可以嘗試的另一種方法是將json解碼爲數組而不是對象。

$json_output = json_decode($json,true); 

通過在json_decode傳遞varaible爲真()功能,您將得到json_output因爲可以很容易地遍歷數組。

否則

可以遍歷

foreach ($json_output->results as $object){ 
    echo "{$object->title}\n"; 
} 

請參閱json_decode()函數PHP手冊指南:http://php.net/manual/en/function.json-decode.php