2016-02-21 160 views
1

我一直在試圖用一些JSON數據來解決一個想法,但是當我嘗試通過JSON循環foreach時,它只返回所有數據的第一個字符而不僅僅是first_name在我的測試。PHP JSON foreach只返回第一個字符

代碼

<?php 
    $jsondata ='{"first_name":"John","last_name":"Doe","guest_link":"test test","id":"3"}'; 
    $json = json_decode($jsondata, true); 
    ?> 
    <?php foreach($json as $item) : ?> 
    <p> 
     <?php echo $item['first_name']; ?> 
    </p> 
    <?php endforeach; ?> 

結果

J 

D 

t 

3 

如果我做了var_dump這就是我得到:

string(4) "John" 
string(3) "Doe" 
string(9) "test test" 
string(1) "3" 

所以,我不知道我錯過了什麼,o如果我只是以錯誤的方式來解決這個問題。

回答

3

你的JSON串具有只有一個對象,不嵌套的對象或數組。

所以,你必須用這種方式嘗試:

$json = json_decode($jsondata, true); 
echo $json['first_name']; 

或者這樣:

$json = json_decode($jsondata, true); 
foreach($json as $key => $item) 
{ 
    echo $item; 
} 
+0

AHHHHH,OK。所以,我不知道「技術上」需要'foreach'循環。我可以直接用'echo'調用數據。男人,我想我將不得不使用一個'foreach'循環的數據。 – ultraloveninja

+1

如果你不將對象轉換爲和數組,你可以簡單的使用'$ json-> first_name'和'$ json-> last_name'等 – RiggsFolly

+0

我有這個確切的問題,但我的應用程序將擴展到需要的foreach ...做有人有一個實際的解釋,爲什麼上面的代碼不起作用? – thedevelop3r