如何用PHP读取array / JSON中的复杂数据?

时间:2015-06-14 07:08:22

标签: 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
             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

2 个答案:

答案 0 :(得分:0)

我从你发布的json结构解码数据没有问题。这是一个简单的示例脚本,它转储了解码后的数组结构:

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

关于您尝试且无法提取的特定数据:您必须注意使用正确的&#34;路径&#34;在数据结构内部。这个有效:

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

因为那个是一个数组,你必须在那里找到一个特定的条目来获得你期望的输出:

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

答案 1 :(得分:0)

是的,您应该使用

print_r($a['trips']['tripOption'][0]['saleTotal'])

如果要读取该数组中的数据,可以执行以下操作:

$data = json_decode($s,true);
foreach ($data['trips']['tripOption'] as $item){
    print_r($item['saleTotal'] . "\n");
};