如何在 PHP 中循环遍历多维 JSON 数组? [英] How do I loop through multidimensional JSON array in PHP?

查看:117
本文介绍了如何在 PHP 中循环遍历多维 JSON 数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想编写代码来循环遍历多维数组(4 或 5 深)并回显找到的所有键和值并跳过空数组.

$drugs = fopen("http://dgidb.org/api/v2/interactions.json?drugs=FICLATUZUMAB", "r");$json_drugs = stream_get_contents($drugs);fclose($drugs);$data_drugs = json_decode($json_drugs,true);foreach ($data_drugs as $key => $value)...

任何人,任何人,Ferris?

解决方案

你的 $data_drugs 不再是一个 json,在 json_decode 是一个关联数组之后.
你不需要任何循环来查看键和值

$data_drugs = json_decode($json_drugs,true);打印_r($data_drugs);/* 或者如果你不喜欢内联 */echo'

';打印_r($data_drugs);echo'</pre>';

您可以使用 var_dump($data_drugs) - 带有类型的键和值,可能您不需要这个
但是如果你想更多地显示键和值......花式使用递归函数

function show($x){foreach($x as $key=>$val){echo"<p>$key : ";if(is_array($val)){ 回声"..";显示($val);}else{ echo"$val</p>";}}}显示($data_drugs);

I want to write code to loop through a multidimensional array (4 or 5 deep) and echo all keys and values found and skip empty arrays.

$drugs = fopen("http://dgidb.org/api/v2/interactions.json?drugs=FICLATUZUMAB", "r");
$json_drugs = stream_get_contents($drugs);
fclose($drugs);
$data_drugs = json_decode($json_drugs,true);

foreach ($data_drugs as $key => $value) 
...

Anyone, anyone, Ferris?

解决方案

Your $data_drugs is no longer a json, after json_decode is an associative array.
You don't need any loop to see keys and values

$data_drugs = json_decode($json_drugs,true);
print_r($data_drugs);

/* or if you don't like inline */

echo'<pre>';
print_r($data_drugs);
echo'</pre>';

You can use var_dump($data_drugs) - keys and values with types, probably you don't need this
But if you want to display keys and values more ...fancy use a recursive function

function show($x){
    foreach($x as $key=>$val){
        echo"<p>$key : ";
        if(is_array($val)){ echo". . ."; show($val);}
        else{ echo"$val</p>";}}}

show($data_drugs);

这篇关于如何在 PHP 中循环遍历多维 JSON 数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆