如何使用PHP读取数组/JSON中的复杂数据?
在PHP中使用JSON_decode()函数读取JSON中的大量数据,我一直面临着非常困难的时期。基本上,我需要阅读基本数据来显示航班日期、始发地和目的地 应该是这样的:如何使用PHP读取数组/JSON中的复杂数据?,php,arrays,json,Php,Arrays,Json,在PHP中使用JSON_decode()函数读取JSON中的大量数据,我一直面临着非常困难的时期。基本上,我需要阅读基本数据来显示航班日期、始发地和目的地 应该是这样的: 20 solutions found. Solution# 1 Sale Price: BRL2919.54 Slice 0 TA 916 GRU 2015-06-16T06:15-03:00 LIM 2015-06-16T09:20-05:00
20 solutions found.
Solution# 1 Sale Price: BRL2919.54
Slice 0
TA 916 GRU 2015-06-16T06:15-03:00 LIM 2015-06-16T09:20-05:00
AV 962 LIM 2015-06-16T10:04-05:00 MIA 2015-06-16T16:48-04:00
这是JSON代码:
当我试图转换它并读取它时,会出现空数据
$data = json_decode($results, true); // $results is a variable with
the JSON content from the URL above
echo $data['tripOption']['saleTotal']; // just an example
我可以从您发布的json结构中解码数据。下面是一个简单的示例脚本,它转储了解码的数组结构:
<?php
$json = file_get_contents('./data.json');
$data = json_decode($json, true);
print_r($data);
因为这是一个数组,所以您必须在其中寻址一个特定的条目,才能获得预期的输出:
echo $data['trips']['tripOption'][0]['saleTotal']; // just an example
是的,你应该使用
print_r($a['trips']['tripOption'][0]['saleTotal'])
如果要读取该数组中的数据,可以执行以下操作:
$data = json_decode($s,true);
foreach ($data['trips']['tripOption'] as $item){
print_r($item['saleTotal'] . "\n");
};
很好,这很有道理。如果我必须读取该数组中的数据,该怎么做?我必须使用foreach阅读所有答案吗?如果我的答案对你有用,请投票支持我的答案,谢谢!是的,谢谢你!如果我需要从更复杂的阵列内部获取数据,比如“载体”,该怎么办?我得走一走才能拿到它?比如:echo$dados['trips']['tripOption']['slice']['segment']['flight']['carrier']?顺便说一句,这不起作用是的。我认为没有其他方法。在你知道数组中有什么之前,你无法获取其中的列。它不起作用。。。我对数组层次结构不太满意。谢谢你。你说得很对,我解决不了这个问题。例如,要获取层次结构第6位的“carrier”,这是不可行的:$data['trips']['trippoption']['slice']['segment']['flight']['carrier'];同样的事情:您在层次结构中查看相同的位置。再次尝试在数组
tripOption
中寻址元素slice
,它是一个数字数组,因此只提供数字键。通常,它有助于减少表达式并转储数组的一部分以进行调试,这里是打印($data['trips']['tripOption')然后检查并一次添加一个层次结构级别。所以你感觉到了前进的方向。
$data = json_decode($s,true);
foreach ($data['trips']['tripOption'] as $item){
print_r($item['saleTotal'] . "\n");
};