如何使用PHP读取数组/ JSON中的复杂数据


How to read complex data in array/JSON with PHP?

我一直面临着使用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
             AV 962 LIM 2015-06-16T10:04-05:00 MIA 2015-06-16T16:48-04:00

这是JSON代码:http://pastebin.com/dH16RriT

当我尝试转换它并读取它时,它带有 NULL 数据。

$data = json_decode($results, true); // $results is a variable with
the JSON content from the URL above
echo $data['tripOption']['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");
};

我可以从您发布的 json 结构中解码该数据。这是一个微不足道的示例脚本,它转储了解码的数组结构:

<?php
$json = file_get_contents('./data.json');
$data = json_decode($json, true);
print_r($data);

关于您尝试提取但未能提取的特定数据:您必须注意在数据结构中使用正确的"路径"。这个工作:

print_r($data['trips']['tripOption']);

由于那个是一个数组,你必须在那里处理一个特定的条目才能获得你期望的输出:

echo $data['trips']['tripOption'][0]['saleTotal']; // just an example