PHP JSON foreach只返回第一个字符

时间:2016-02-21 17:50:04

标签: php json foreach

我一直在尝试使用一些JSON数据来解决我的想法,但是当我尝试foreach循环访问JSON时,它只返回所有数据的第一个字符,而不仅仅是我的测试中first_name

代码

<?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"

所以,我不确定我是否遗漏了某些东西,或者我是否只是以错误的方式解决这个问题。

1 个答案:

答案 0 :(得分:3)

您的JSON字符串只有一个对象,没有嵌套对象或数组。

所以你必须以这种方式尝试:

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

或以这种方式:

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