Как вернуть объекты JSON с помощью Array php

У меня есть этот php-код для возврата массива из файла JSON, но я не могу вернуть объекты (информационная структура аэропорта), а также прибытия и т. д.

Извините, если это не очень понятно, я новичок в этом.

Code: 
$fxml_response = $client->request('GET', 'AirportBoards', ['query' => $queryParams]);
try {
    $body = json_decode($fxml_response->getBody(), true);
    if ($fxml_response->getStatusCode() == 200 && !array_key_exists('error', $body)) {
        foreach (['arrivals', 'departures', 'enroute', 'scheduled',] as $board) {
            if ($body['AirportBoardsResult'][$board]) {
                $boardFlights = $body['AirportBoardsResult'][$board]['flights'];
                $response[$board] = $boardFlights;
            }
        }
    } else {
        $response['error'] = $body['error'];
    }
} catch (Exception $e) {
    echo json_encode(['error' => 'Failed to retrieve Airport Board details.']);
}
// Send back the data
header('Content-Type: application/json');
echo json_encode($response);

Json:

{
    "AirportBoardsResult": {
        "airport": "NZAP",
        "airport_info": {
            "airport_code": "NZAP",
            "name": "Taupo",
            "elevation": 1335.0,
            "city": "Taupo",
            "state": "",
            "longitude": 176.084444,
            "latitude": -38.739723,
            "timezone": ":Pacific/Auckland",
            "country_code": "NZ",
            "wiki_url": "https://en.wikipedia.org/wiki/Taupo_Airport",
            "alternate_ident": "TUO"
        },
        "arrivals": {
            "num_flights": 6,
            "next_offset": -1,
            "flights": [{
                "ident": "SDA806",
                "faFlightID": "SDA806-1528092600-schedule-0000",
                "airline": "SDA",
                "airline_iata": "S8",
                "flightnumber": "806",
                "tailnumber": "ZK-PLV",
                "type": "Form_Airline",
                "blocked": false,
                "diverted": false,
                "cancelled": false,
                "origin": {
                    "code": "NZWN",
                    "city": "Wellington",
                    "alternate_ident": "WLG",
                    "airport_name": "Wellington Int'l"
                },
                "destination": {
                    "code": "NZAP",
                    "city": "Taupo",
                    "alternate_ident": "TUO",
                    "airport_name": "Taupo"
                },
                "filed_ete": 3480,
                "route": "KADNU1Q KAPTI WNAP2",
                "filed_altitude": 210,
                "display_filed_altitude": "21,000 feet",
                "filed_airspeed_kts": 250,
                "distance_filed": 191,
                "filed_departure_time": {
                    "epoch": 1528265400,
                    "tz": "NZST",
                    "dow": "Wednesday",
                    "time": "06:10PM",
                    "date": "06/06/2018",
                    "localtime": 1528308600
                },
                "estimated_departure_time": {
                    "epoch": 1528265889,
                    "tz": "NZST",
                    "dow": "Wednesday",
                    "time": "06:18PM",
                    "date": "06/06/2018",
                    "localtime": 1528309089
                },
                "actual_departure_time": {
                    "epoch": 1528265889,
                    "tz": "NZST",
                    "dow": "Wednesday",
                    "time": "06:18PM",
                    "date": "06/06/2018",
                    "localtime": 1528309089
                },
                "departure_delay": 489,
                "filed_arrival_time": {
                    "epoch": 1528268880,
                    "tz": "NZST",
                    "dow": "Wednesday",
                    "time": "07:08PM",
                    "date": "06/06/2018",
                    "localtime": 1528312080
                },
                "estimated_arrival_time": {
                    "epoch": 1528269502,
                    "tz": "NZST",
                    "dow": "Wednesday",
                    "time": "07:18PM",
                    "date": "06/06/2018",
                    "localtime": 1528312702
                },
                "actual_arrival_time": {
                    "epoch": 1528269180,
                    "tz": "NZST",
                    "dow": "Wednesday",
                    "time": "07:13PM",
                    "date": "06/06/2018",
                    "localtime": 1528312380
                },
                "arrival_delay": 300,
                "status": "Arrived",
                "progress_percent": 100,
                "aircrafttype": "PC12",
                "full_aircrafttype": "L/PC12",
                "adhoc": false
            }]
        };

Вы никогда не echo json_encode($response); ...

AbraCadaver 06.06.2018 22:54

попробуйте echo json_encode($response[$board]);

Ulises 06.06.2018 22:55

@UlyssesMarx извини, только что добавил его в код. Не возвращает airport_info только прибывшим.

radar 06.06.2018 22:57

измените свой код, чтобы знать, где вы вносите изменение

Ulises 06.06.2018 23:00

JSON недействителен. Кронштейны не сбалансированы, и на конце есть диск ;, которому не место.

Barmar 06.06.2018 23:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавьте информацию об аэропорте к результату после цикла.

if ($fxml_response->getStatusCode() == 200 && !array_key_exists('error', $body)) {
    foreach (['arrivals', 'departures', 'enroute', 'scheduled',] as $board) {
        if ($body['AirportBoardsResult'][$board]) {
            $boardFlights = $body['AirportBoardsResult'][$board]['flights'];
            $response[$board] = $boardFlights;
        }
    }
    $response['airport_info'] = $body['AirportBoardsResult']['airport_info'];
}

Другие вопросы по теме