1

Hello every one i am working on wego flight api after sending post request i have an array of json data in following pattern

{"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"}},

i want to print totalPricePerPassenger

following is my php code

$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>";
                }
            }
        }
     }
}

2 Answers 2

2

First of all, you need to make sure your JSON string is valid. Use an online linter like JSONLint for this purpose.

Note that you don't need any fancy functions like objectToArray() here because json_decode() by default allows the string to be decoded into an array (as opposed to an object). The only change you need to make is set the second parameter as TRUE:

$data = json_decode($json, TRUE); // no need to use objectToArray()

Then inspect the structure of the array using print_r():

echo '<pre>' . print_r($data, TRUE) . '</pre>;

Once you know the structure of the array, it should be pretty easy to loop through and print the required values. For printing all the pricePerPassenger values, simply do:

foreach ($data['response']['itineraries'] as $itinerary) {
    echo $itinerary['price']['pricePerPassenger'] . "\n";
}

Working demo

Sign up to request clarification or add additional context in comments.

5 Comments

@TerryHiggins: Step one: enable error reporting by adding these lines of code to the very top of your script. Refresh the page. What error do you get?
@TerryHiggins: That means you're not getting an array. What does your JSON string look like? Where do you get it from?
@TerryHiggins: Note that I can only see an error on that page and not actual code. It would be helpful if you post the exact code somewhere so that I can see it.
Please check URL now lifetimecoupons.com/abs1/new.php i have added code now too
@TerryHiggins: You're missing the API key in the URL. What happens when you try to load the URL manually, in your browser? Also, it seems you did not read the answer. Read it again.
0

Just use json_decode($json, true);

You'll be returned an array which you can echo much more neatly.

3 Comments

false, it retuns an object
@EaterOfCode Not if you supply true as a secondary parameter.
@hindmost I know, I suggested he just uses it, rather than the unnecessary complication of the other functions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.