2012-06-18 81 views
0

我試圖使用一個JSON鏈接的值來填充其他JSON鏈接中的值,從而導致組合JSON的唯一值列表。我已經創建了完整的值列表,但我很難在最後一個循環中查找語法來僅顯示唯一值。任何幫助,將不勝感激。如何根據PHP中的JSON結果返回唯一列表?

$collection_string = file_get_contents("http://some_json_url.com/json"); 
$collection_list = json_decode($collection_string, true); 

foreach ($collection_list as $col_lists => $col_list) { 
    $object_string = file_get_contents('http://another_json_url.com/'.$col_list['key'].'/json'); 
    $object_list = json_decode($object_string, true); 
    $object_array = array(); 

    foreach ($object_list as $objects => $object) { 
      $object_array [] = array_unique($object); //Returns "Warning: array_unique() expects parameter 1 to be array, string given in..." 
      echo '<li><a href="some_search_url/'.$object_array.'/search/">'.$object_array.'</a></li>'; //Returns "Array" 
      echo '<li><a href="some_search_url/'.$object.'/search/">'.$object.'</a></li>'; //Returns complete list 
    } 

} 

工作代碼:

$collection_string = file_get_contents("http://some_json_url.com/json"); 
$collection_list = json_decode($collection_string, true); 

$object_array = array(); 

foreach ($collection_list as $col_lists => $col_list) { 
    $object_string = file_get_contents('http://another_json_url.com/'.$col_list['key'].'/json'); 
    $object_list = json_decode($object_string, true); 

    foreach ($object_list as $key => $value) { 
      array_push($object_array, $value); 
    } 
} 

$object_unique = array_unique($object_array); 
natcasesort($object_unique); 

foreach ($object_unique as $key => $value) { 
    echo '<li><a href="some_search_url/'.$value.'/search/">'.$value.'</a></li>'; 
} 

回答

1

簡單地改變這種

$object_array [] = array_unique($object); 

$object_array [] = $object; // edited ! 
array_unique($object_array); 

也許你也可以用一行代碼做到這一點,但我不知道如何寫它。但是按照我寫它的方式,它有點未被優化,最好是在最後一個循環之後只做一次array_unique()。

順便說一句你的問題是/你試圖使$ object唯一,這不是一個數組。它是一個字符串/對象。

+0

感謝您的快速回復。不幸的是,我仍然得到以下:「警告:array_unique()期望參數1是數組,字符串給予...在線42 數組」(重複) – user1464137

+0

我剛剛發現一個錯誤,並編輯我的帖子。請看一看 !你將不得不刪除「你的」array_unique。 – Sliq

+0

編輯照顧我所看到的錯誤。 響應現在是「ArrayArrayArray ...」而不是每個數組的值,但我不知道爲什麼。 – user1464137

相關問題