2013-11-26 96 views
0

你好傢伙在這裏需要一點幫助。因爲我有一個json數據並且解碼它。但我無法使用foreach循環訪問它。當我試圖打印陣列結構,我得到這個:如何使用PHP從stdClass對象(json輸出)訪問數組?

​​

所有我想要的是訪問代碼和國家

我用這個循環,但它顯示的索引名和值:

foreach($decode_country as $p){ 
    foreach($p as $key => $value){ 
     echo $key."--".$value."<br />"; 
    } 
} 

但它顯示:

code--AD 
country--Andorra 
code--AE 
country--United Arab Emirates 
code--AF 
country--Afghanistan 
code--AG 
country--Antigua and Barbuda 
code--AI 
country--Anguilla 
code--AL 
country--Albania 
code--AM 
country--Armenia 

回答

2

嘗試像

foreach($decode_country as $p){ 
    echo "code -- ".$p->code."<br>"; 
    echo "country -- ".$p->country."<br>"; 
} 

這裏$p將被視爲一個對象,你可以使用$p->code$p->country提取codecountry。或者更好:解碼 JSON數據,你需要給像

$decode_country = json_decode($data,true); 

true將返回數組結果。然後使用

foreach($decode_country as $p){ 
    echo "code -- ".$p['code']."<br>"; 
    echo "country -- ".$p['country']."<br>"; 
} 
+0

我也在我的解碼中包含布爾值TRUE,但效果相同。我得到了 試圖獲得非對象的屬性 – Jerielle

1

你可以試試這個

foreach($decode_country as $p){ 
    echo $p->code; 
    echo $p->country; 
} 

這裏$decode_country爲對象的array和內部foreach循環中,每個$p是一個對象。

如果使用json_decode($data, true);然後使用

echo $p['code']; 

當使用TRUE,返回的對象將轉換成關聯數組。 否則,使用

echo $p->code; 
+0

好吧,我得到一個錯誤: 試圖獲得非對象的屬性 – Jerielle

+0

這是我們',var_dump($ decode_country [0])'應該打印數組中的第一個對象,嘗試這個。 –

+0

當我var_dump它。它的結果到: 陣列(2){ [ 「代碼」] => 串(2) 「AD」 [ 「國家」] => 串(7) 「安道爾」 } – Jerielle