@sochi-russia

Api и json как перевести код авиакомпании в нормальное имя?

Да для меня сложно, но я не cдаюсь.
Есть код я его уже неделю дарабатываю
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.travelpayouts.com/v1/prices/cheap?origin=MOW&destination=HKT&token=321d6a221f8926b5ec41ae89a3b2ae7b");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"X-Access-Token: 321d6a221f8926b5ec41ae89a3b2ae7b"
));
$response = curl_exec($ch);
curl_close($ch);
$json=json_decode($response,true);?>
<?php
$json= curl_init();
$json=json_decode($response,true);
$json=end($json['data']);
foreach($json as $val) { ?>
<div style="background:#ffffff; color:#008BE0!important;font-weight:bold;">Цена: <?=$val['price']?> Авиакомпания: <?=$val['airline']?> Номер рейса: <?=$val['flight_number']?></div>
.....

<?php } ?>


Сам АПИ выдает ответ:
{"success": true, "data": {"HKT":{"0":{"price":32539,"airline":"R2","flight_number":559,"departure_at":"2015-12-31T23:00:00Z","return_at":"2016-01-03T14:10:00Z","expires_at":"2015-12-27T19:46:58Z"},"1":{"price":31521,"airline":"CZ","flight_number":6002,"departure_at":"2016-03-17T21:40:00Z","return_at":"2016-03-29T02:25:00Z","expires_at":"2015-12-25T13:43:26Z"},"2":{"price":32057,"airline":"CZ","flight_number":356,"departure_at":"2016-03-18T21:40:00Z","return_at":"2016-03-26T01:50:00Z","expires_at":"2015-12-25T14:09:29Z"},"3":{"price":48458,"airline":"KC","flight_number":894,"departure_at":"2016-05-02T10:00:00Z","return_at":"2016-05-15T21:10:00Z","expires_at":"2015-12-26T08:38:56Z"}}}}


Перевожу в человеческий вид
Цена: 32539 Авиакомпания: R2 Номер рейса: 559
.....
Цена: 31521 Авиакомпания: CZ Номер рейса: 6002
.....
Цена: 32057 Авиакомпания: CZ Номер рейса: 356
.....
Цена: 48458 Авиакомпания: KC Номер рейса: 894


<?php
$json= curl_init();
$json=json_decode($response,true);
$json=end($json['data']);
foreach($json as $val) { ?>

<div style="background:#ffffff; color:#008BE0!important;font-weight:bold;">Цена: <?=$val['price']?> Авиакомпания: <?=$val['airline']?> Номер рейса: <?=$val['flight_number']?></div>
.....

<?php } ?>


все работает прекрасно, но авиакомпанию пишет в виде кода из двух букв здесь в примере это "R2"

Задал вопрос администрации travelpayouts.com как перевести нормальный вид. Администрация ответила, что я могу воспользоваться json файлом для своих целей. Вопрос, вот этот файл
api.travelpayouts.com/data/airlines.json

Как я могу им воспользоваться (перевести код авиакомпании в нормальный словесный вид.)
Заранее спасибо. С уважением
  • Вопрос задан
  • 482 просмотра
Решения вопроса 1
NorthDakota
@NorthDakota
PHP програмист
$mapping = json_decode(file_get_contents('test.json'));
$code = 'R2';
$name = '';
foreach ($mapping as $item) {
    if ($item->iata == $code) {
        $name = $item->name;
        break;
    }
}
echo $name;

Не проверял, но должно работать

UPD:
совмещу ваш и свой код, для понимания

foreach($json as $val) { ?>
<?
$mapping = json_decode(file_get_contents('test.json'));
$name = '';
$code = $val['airline']
foreach ($mapping as $item) {
    if ($item->iata == $code) {
        $name = $item->name;
        break;
    }
}
?>
<div style="background:#ffffff; color:#008BE0!important;font-weight:bold;">Цена: <?=$val['price']?> Авиакомпания: <?=$name?> Номер рейса: <?=$val['flight_number']?></div>
.....

<?php } ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы