Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在foreach循环PHP中回显Json数据_Php_Json - Fatal编程技术网

如何在foreach循环PHP中回显Json数据

如何在foreach循环PHP中回显Json数据,php,json,Php,Json,大家好,在发送post请求后,我正在处理wego flight api,我有一个json数据数组,格式如下 {"response":{ "pendingResults":"true", "itineraries":[ {"ecpcRank":0,"inboundInfo":{"aircraftTypes":[],"departureTime":1401116400000,"layoverInMin":0,"flightNumbers":["SQ981"],"durationInMin":85,"

大家好,在发送post请求后,我正在处理wego flight api,我有一个json数据数组,格式如下

{"response":{
"pendingResults":"true",
"itineraries":[
{"ecpcRank":0,"inboundInfo":{"aircraftTypes":[],"departureTime":1401116400000,"layoverInMin":0,"flightNumbers":["SQ981"],"durationInMin":85,"airportsExpanded":["BKK","SIN"],"localDepartureTimeStr":"2014/05/26 22:00 +0700","airports":["BKK","SIN"],"arrivalTime":1401121500000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/27 00:25 +0800"},"location":[{"code":"BKK","name":"Bangkok"},{"code":"SIN","name":"Singapore Changi"}],"carrier":[{"name":"Singapore Airlines","code":"SQ"}],"bookingType":"WEBSITE","price":{"name":"","nameOTA":"","description":"","amount":"406","totalAmount":"406","pricePerPassenger":"406","currencyCode":"USD","totalPricePerPassenger":"406","includesTax":true},"generatedDate":1399013553817,"providerId":"singaporeair.com","id":"SQ974[SIN-BKK]|SQ981[BKK-SIN]","originCountryCode":"SG","bookingCode":"14859286949361958","destinationCountryCode":"TH","outboundInfo":{"aircraftTypes":[],"departureTime":1399956900000,"layoverInMin":0,"flightNumbers":["SQ974"],"durationInMin":205,"airportsExpanded":["SIN","BKK"],"localDepartureTimeStr":"2014/05/13 12:55 +0800","airports":["SIN","BKK"],"arrivalTime":1399969200000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/13 15:20 +0700"}},
{"ecpcRank":0,"inboundInfo":{"aircraftTypes":[],"departureTime":1401096600000,"layoverInMin":0,"flightNumbers":["SQ977"],"durationInMin":85,"airportsExpanded":["BKK","SIN"],"localDepartureTimeStr":"2014/05/26 16:30 +0700","airports":["BKK","SIN"],"arrivalTime":1401101700000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/26 18:55 +0800"},"location":[{"code":"BKK","name":"Bangkok"},{"code":"SIN","name":"Singapore Changi"}],"carrier":[{"name":"Singapore Airlines","code":"SQ"}],"bookingType":"WEBSITE","price":{"name":"","nameOTA":"","description":"","amount":"406","totalAmount":"406","pricePerPassenger":"406","currencyCode":"USD","totalPricePerPassenger":"406","includesTax":true},"generatedDate":1399013553833,"providerId":"singaporeair.com","id":"SQ976[SIN-BKK]|SQ977[BKK-SIN]","originCountryCode":"SG","bookingCode":"14859286965418532","destinationCountryCode":"TH","outboundInfo":{"aircraftTypes":[],"departureTime":1399968000000,"layoverInMin":0,"flightNumbers":["SQ976"],"durationInMin":205,"airportsExpanded":["SIN","BKK"],"localDepartureTimeStr":"2014/05/13 16:00 +0800","airports":["SIN","BKK"],"arrivalTime":1399980300000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/13 18:25 +0700"}},
{"ecpcRank":0,"inboundInfo":{"aircraftTypes":[],"departureTime":1401107400000,"layoverInMin":0,"flightNumbers":["SQ979"],"durationInMin":85,"airportsExpanded":["BKK","SIN"],"localDepartureTimeStr":"2014/05/26 19:30 +0700","airports":["BKK","SIN"],"arrivalTime":1401112500000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/26 21:55 +0800"},"location":[{"code":"BKK","name":"Bangkok"},{"code":"SIN","name":"Singapore Changi"}],"carrier":[{"name":"Singapore Airlines","code":"SQ"}],"bookingType":"WEBSITE","price":{"name":"","nameOTA":"","description":"","amount":"406","totalAmount":"406","pricePerPassenger":"406","currencyCode":"USD","totalPricePerPassenger":"406","includesTax":true},"generatedDate":1399013553835,"providerId":"singaporeair.com","id":"SQ976[SIN-BKK]|SQ979[BKK-SIN]","originCountryCode":"SG","bookingCode":"14859286967291059","destinationCountryCode":"TH","outboundInfo":{"aircraftTypes":[],"departureTime":1399968000000,"layoverInMin":0,"flightNumbers":["SQ976"],"durationInMin":205,"airportsExpanded":["SIN","BKK"],"localDepartureTimeStr":"2014/05/13 16:00 +0800","airports":["SIN","BKK"],"arrivalTime":1399980300000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/13 18:25 +0700"}},
{"ecpcRank":0,"inboundInfo":{"aircraftTypes":[],"departureTime":1401116400000,"layoverInMin":0,"flightNumbers":["SQ981"],"durationInMin":85,"airportsExpanded":["BKK","SIN"],"localDepartureTimeStr":"2014/05/26 22:00 +0700","airports":["BKK","SIN"],"arrivalTime":1401121500000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/27 00:25 +0800"},"location":[{"code":"BKK","name":"Bangkok"},{"code":"SIN","name":"Singapore Changi"}],"carrier":[{"name":"Singapore Airlines","code":"SQ"}],"bookingType":"WEBSITE","price":{"name":"","nameOTA":"","description":"","amount":"406","totalAmount":"406","pricePerPassenger":"406","currencyCode":"USD","totalPricePerPassenger":"406","includesTax":true},"generatedDate":1399013553839,"providerId":"singaporeair.com","id":"SQ976[SIN-BKK]|SQ981[BKK-SIN]","originCountryCode":"SG","bookingCode":"14859286971168219","destinationCountryCode":"TH","outboundInfo":{"aircraftTypes":[],"departureTime":1399968000000,"layoverInMin":0,"flightNumbers":["SQ976"],"durationInMin":205,"airportsExpanded":["SIN","BKK"],"localDepartureTimeStr":"2014/05/13 16:00 +0800","airports":["SIN","BKK"],"arrivalTime":1399980300000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/13 18:25 +0700"}},
{"ecpcRank":0,"inboundInfo":{"aircraftTypes":[],"departureTime":1401075600000,"layoverInMin":0,"flightNumbers":["SQ973"],"durationInMin":85,"airportsExpanded":["BKK","SIN"],"localDepartureTimeStr":"2014/05/26 10:40 +0700","airports":["BKK","SIN"],"arrivalTime":1401080700000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/26 13:05 +0800"},"location":[{"code":"BKK","name":"Bangkok"},{"code":"SIN","name":"Singapore Changi"}],"carrier":[{"name":"Singapore Airlines","code":"SQ"}],"bookingType":"WEBSITE","price":{"name":"","nameOTA":"","description":"","amount":"437","totalAmount":"437","pricePerPassenger":"437","currencyCode":"USD","totalPricePerPassenger":"437","includesTax":true},"generatedDate":1399013553842,"providerId":"singaporeair.com","id":"SQ978[SIN-BKK]|SQ973[BKK-SIN]","originCountryCode":"SG","bookingCode":"14859286974435322","destinationCountryCode":"TH","outboundInfo":{"aircraftTypes":[],"departureTime":1399977300000,"layoverInMin":0,"flightNumbers":["SQ978"],"durationInMin":205,"airportsExpanded":["SIN","BKK"],"localDepartureTimeStr":"2014/05/13 18:35 +0800","airports":["SIN","BKK"],"arrivalTime":1399989600000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/13 21:00 +0700"}},
{"ecpcRank":0,"inboundInfo":{"aircraftTypes":[],"departureTime":1401084900000,"layoverInMin":0,"flightNumbers":["SQ975"],"durationInMin":85,"airportsExpanded":["BKK","SIN"],"localDepartureTimeStr":"2014/05/26 13:15 +0700","airports":["BKK","SIN"],"arrivalTime":1401090000000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/26 15:40 +0800"},"location":[{"code":"BKK","name":"Bangkok"},{"code":"SIN","name":"Singapore Changi"}],"carrier":[{"name":"Singapore Airlines","code":"SQ"}],"bookingType":"WEBSITE","price":{"name":"","nameOTA":"","description":"","amount":"437","totalAmount":"437","pricePerPassenger":"437","currencyCode":"USD","totalPricePerPassenger":"437","includesTax":true},"generatedDate":1399013553848,"providerId":"singaporeair.com","id":"SQ978[SIN-BKK]|SQ975[BKK-SIN]","originCountryCode":"SG","bookingCode":"14859286980412767","destinationCountryCode":"TH","outboundInfo":{"aircraftTypes":[],"departureTime":1399977300000,"layoverInMin":0,"flightNumbers":["SQ978"],"durationInMin":205,"airportsExpanded":["SIN","BKK"],"localDepartureTimeStr":"2014/05/13 18:35 +0800","airports":["SIN","BKK"],"arrivalTime":1399989600000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/13 21:00 +0700"}},
{"ecpcRank":0,"inboundInfo":{"aircraftTypes":[],"departureTime":1401096600000,"layoverInMin":0,"flightNumbers":["SQ977"],"durationInMin":85,"airportsExpanded":["BKK","SIN"],"localDepartureTimeStr":"2014/05/26 16:30 +0700","airports":["BKK","SIN"],"arrivalTime":1401101700000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/26 18:55 +0800"},"location":[{"code":"BKK","name":"Bangkok"},{"code":"SIN","name":"Singapore Changi"}],"carrier":[{"name":"Singapore Airlines","code":"SQ"}],"bookingType":"WEBSITE","price":{"name":"","nameOTA":"","description":"","amount":"437","totalAmount":"437","pricePerPassenger":"437","currencyCode":"USD","totalPricePerPassenger":"437","includesTax":true},"generatedDate":1399013553854,"providerId":"singaporeair.com","id":"SQ978[SIN-BKK]|SQ977[BKK-SIN]","originCountryCode":"SG","bookingCode":"14859286986666243","destinationCountryCode":"TH","outboundInfo":{"aircraftTypes":[],"departureTime":1399977300000,"layoverInMin":0,"flightNumbers":["SQ978"],"durationInMin":205,"airportsExpanded":["SIN","BKK"],"localDepartureTimeStr":"2014/05/13 18:35 +0800","airports":["SIN","BKK"],"arrivalTime":1399989600000,"numStops":0,"flightClasses":[{"name":"Economy","fareClass":1}],"localArrivalTimeStr":"2014/05/13 21:00 +0700"}},
我想打印全票

下面是我的php代码

$result2=curl_exec($ch);



$data = json_decode($result2);
$data = objectToArray($data);

function objectToArray($object)
{
    if (!is_object($object) && !is_array($object)) {
        return $object;
    }
    if (is_object($object)) {
        $object = (array )$object;
    }
    return array_map('objectToArray', $object);
}


foreach($data as $root){
     foreach($root as $rootOne){
        if(is_array($rootOne)){
            foreach($rootOne as $rootArrays){
                if(!empty($rootArrays["price"])){
                $priceArray = $rootArrays["price"];
                echo $priceArray["totalPricePerPassenger"];
                echo"<hr>";
                }
            }
        }
     }
}
$result2=curl\u exec($ch);
$data=json_解码($result2);
$data=objectToArray($data);
函数objectToArray($object)
{
如果(!is_对象($object)&&!is_数组($object)){
返回$object;
}
if(is_object($object)){
$object=(数组)$object;
}
返回数组映射('objectToArray',$object);
}
foreach($root形式的数据){
foreach($root作为$rootOne){
if(is_数组($rootOne)){
foreach($rootOne作为$rootarray){
如果(!empty($rootArrays[“price”])){
$priceArray=$rootArrays[“price”];
echo$priceArray[“totalPricePerPassenger”];
回声“
”; } } } } }
只需使用


将返回一个数组,您可以更灵活地回显该数组。

首先,您需要确保JSON字符串有效。为此,请使用类似的在线过梁

请注意,这里不需要任何奇特的函数,如
objectToArray()
,因为默认情况下允许将字符串解码为数组(与对象相反)。只需将第二个参数设置为
TRUE

$data = json_decode($json, TRUE); // no need to use objectToArray()
然后使用以下方法检查阵列的结构:


错误,它重新运行object@EaterOfCode如果您提供true作为次要参数,则不会这样做。@据我所知,我建议他只使用它,而不是使用其他函数不必要的复杂程度。@TerryHiggins:第一步:通过添加到脚本顶部来启用错误报告。刷新页面。你得到了什么错误?@TerryHiggins:这意味着你没有得到数组。您的JSON字符串是什么样子的?你从哪里得到的?@TerryHiggins:注意,我只能在那个页面上看到一个错误,而不能看到实际的代码。如果你把准确的代码贴在某个地方,这样我就可以看到它,这将是非常有帮助的。现在请检查URL,我已经添加了代码too@TerryHiggins:URL中缺少API键。当您尝试在浏览器中手动加载URL时会发生什么情况?而且,你似乎没有读到答案。再读一遍。
echo '<pre>' . print_r($data, TRUE) . '</pre>;
foreach ($data['response']['itineraries'] as $itinerary) {
    echo $itinerary['price']['pricePerPassenger'] . "\n";
}