繁体   English   中英

PHP echo json 与键值

[英]PHP echo json with key value

为什么这段代码不能正常工作或者我做错了什么?

$json = json_encode($myInstance->getData($id));
    $result = json_decode($json,true);
    $i = 0;
    foreach ($result as $value) {
        echo '<div>'.$value[$i]['name'].'</div>';
        $i++;
    }

第一个值显示正确,但没有迭代! $value[$i]['name']不是为迭代而构建的吗?? 它只打印array[0]而不是array[1] 谢谢。

你最好使用嵌套的 foreach 循环,这通常不是很好的编码实践,但它会完成你想要做的工作。

$json = json_encode($myInstance->getData($id));
$result = json_decode($json,true);

foreach ($result as $value) {
    foreach($value as $value_detail) {
        echo '<div>'.$value_detail['name'].'</div>';
    }
}

您的代码将遍历 JSON 中的所有第一级项目,并显示第一个项目的第一个名称、第二个项目的第二个名称、第三个项目的第三个名称等。

您遇到的问题可能是因为$json数组是 3D 的,例如

[0 => 
  [ 
    ['name' => 'Foo'], ['name' => 'Bar'] 
  ] 
]

如果是这样,那么您可能会发现 foreach 循环可以是

foreach($result[0] as $value) {
    echo '<div>'.$value['name'].'</div>';
}

尝试var_dump($result); 看看数据是什么样子的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM