2016-09-26 57 views
0

我正在使用REST API,響應以JSON形式返回。下面是什麼它看起來像一個print_r的版本:Implode無循環的多維JSON數組(PHP)

 [topics] => Array 
      (
       [0] => stdClass Object 
        (
         [provider] => klout 
         [value] => Facebook 
        ) 

       [1] => stdClass Object 
        (
         [provider] => klout 
         [value] => Business 
        ) 
       [2] => stdClass Object 
        (
         [provider] => klout 
         [value] => LinkedIn 
        ) 

我需要採取的[提供商]值,並將其轉換爲字符串。

我運行PHP 5.4,所以我array_column是不是一種選擇。

我試圖說明從這裏開始:

$topics_array = $json->digitalFootprint->topics; 
$arr = array_map(function($topics_array){ return $topics_array['value']; }, $arr); 
$implode_topics = implode("[,,]", $arr); 

,但我有一個錯誤提「不能使用類型爲stdClass的對象作爲排序」

任何幫助將不勝感激返回。

+0

[拉姆齊/ array_column](https://github.com/ramsey/array_column)提供array_column()支持PHP版本<5.5。 –

+0

謝謝。我只是安裝它,但我認爲問題是我試圖從一個對象內爆。所以array_map或array_column將不起作用。 – user1701252

+0

的可能的複製[無法使用類型stdClass的的對象作爲數組?](http://stackoverflow.com/questions/6815520/cannot-use-object-of-type-stdclass-as-array) – zanderwar

回答

2

這是簡單地用你如何訪問屬性的問題 - 它是一個對象,而不是一個陣列:

$arr = array_map(function($topics_array){ return $topics_array->value; }, $arr); 
+0

我只是想這和我收到以下消息:警告:implode():傳遞無效參數 – user1701252

+0

@ user1701252如果您在某處在線發佈示例,例如https://eval.in然後我可以幫助 - 否則我會猜測,但它可能是你錯過了一些愚蠢的東西,就像一個錯誤的變量名稱 –

+0

不應該是參數2中的'$ topics_array',無論如何時,OP應該作出修正,以適應當前的ENV – Ghost