2011-06-07 120 views
2

我有一個PHP鍵/值數組,我想從那裏獲取一個值並將其顯示在div中。PHP,從數組中獲取值?

到目前爲止,我有:

$homepage = file_get_contents('http://graph.facebook.com/1389887261/reviews'); 
$parsed = json_decode($homepage); 

我想要得到的值了鍵/值對數組這樣的:

foreach ($parsed as $key => $values){ 
    echo $values['rating']; 
} 

但這並不檢索值。我究竟做錯了什麼?

回答

3

使用PHP的foreach索引引用,這使您能夠獲取密鑰或值。

$parsed = json_decode($homepage,true); 
foreach ($parsed['data'] as $key => $values){ 
    echo $values['rating']; 
} 

http://www.php.net/manual/en/control-structures.foreach.php

+0

我得到'不能使用stdClass類型的對象作爲數組' – Patrioticcow 2011-06-07 19:14:18

+0

這是不正確的。 '$ parsed'是一個stdClass對象,而不是一個數組。 – 2011-06-07 19:15:00

+3

檢查freddy的答案,你需要提供true作爲'$ parsed = json_decode($ homepage,true);'中的第二個參數。還更新了我的答案。 – Niklas 2011-06-07 19:15:48

2
$rating = $parsed->data[0]->rating; 

它適合你嗎?

+0

我得到'無法使用類型的對象stdClass作爲數組' – Patrioticcow 2011-06-07 19:14:08

+0

@Patrioticcow我修改了我的答案 - 第一個版本可以工作,如果'json_decode()'會返回關聯數組(這裏不是這種情況)。 – Tadeck 2011-06-07 19:16:02

+0

@downvoter你低估了我的原因是因爲它返回了這個錯誤或其他東西? – Tadeck 2011-06-07 19:16:59

-1

評分是陣列[ '數據']的一個子陣列,所以:

foreach ($parsed['data'] as $key => $values){ 
    echo $values['rating']; 
} 
-1

爲 「解析」 根節點是這是一個數組,所以你probally要數據..

foreach($parsed['data'] as $key => $value) { 
    echo $value['rating']; 
} 
+0

這是不正確的。 '$ parsed'是一個stdClass對象,而不是一個數組。 – 2011-06-07 19:15:14

+0

@Chris,放鬆對價值。大多數這些答案都有更新。 – 2011-06-07 19:17:15

+0

答案是完全錯誤的,非功能性代碼。把一堆答案淹沒在一個問題上,如果每一個答案都是其他錯誤答案的重複,那麼它有什麼用處呢?因此downvote。這不是一場比賽或比賽 - 這個想法是事實上回答一個問題。嗯? – 2011-06-07 19:20:18

0

如果您沒有通過第二個參數,你會得到一個對象而不是一個數組,見http://php.net/json_decode

$parsed = json_decode($homepage,true); 
foreach ($parsed['data'] as $key => $values){ 
    echo $values['rating']; 
} 

會做的伎倆爲您服務。

1
foreach ($parsed['data'] as $key => $values){ 
    echo $values['rating']; 
} 

注意json_decode()缺省將返回對象。您需要更新以下內容才能執行上述操作:

$parsed = json_decode($homepage, true); 
0

值是stdClass對象,而不是數組。因此,循環:

$homepage = file_get_contents('http://graph.facebook.com/2345053339/reviews'); 
$parsed = json_decode($homepage); 
foreach($parsed->data as $values) { 
    echo 'Rating:'.$values->rating; 
} 

注意我用的是->運算符可以訪問對象屬性...

1

傾倒你的例子做)

foreach ($parsed->data as $key => $values){ 
echo $values->rating;}