За последние 24 часа нас посетил 18081 программист и 1599 роботов. Сейчас ищут 896 программистов ...

Замена данных json

Тема в разделе "PHP для новичков", создана пользователем Arcadiy, 3 янв 2016.

Статус темы:
Закрыта.
  1. Arcadiy

    Arcadiy Активный пользователь

    С нами с:
    3 янв 2016
    Сообщения:
    23
    Симпатии:
    0
    Есть код
    Код (PHP):
    1.  <?php
    2. $products=json_decode($response,true);
    3.  
    4. foreach ($products as $key => $value) {
    5. echo "<table class='mytable'><hr>";
    6. foreach ($value as $k=> $v) {
    7.             echo "<tr><td><br>".$k."</td><td></td></tr>";
    8. foreach ($v as $g=> $l) {
    9. $g=str_replace ('price','цена',$g);
    10. $g=str_replace ('airline','авиакомпания',$g);
    11. $g=str_replace ('origin','город вылета',$g);
    12. $g=str_replace ('destination','город прилета',$g);
    13. $g=str_replace ('transfers','кол-во пересадок',$g);
    14. $g=str_replace ('flight_number','номер рейса',$g);
    15. $g=str_replace ('departure_at','дата вылета',$g);
    16. $g=str_replace ('return_at','дата возвращения',$g);
    17. $g=str_replace ('expires_at','Срок истечения
    18. актуальности цены',$g);
    19.  
    20. echo "<tr><td>".$g."</td><td>".$l."</td></tr>";
    21. }
    22. }
    23. echo "</table>";
    24. }
    25. ?>
    Есть Json файлы, вот они:
    Данные о странах в json : api.travelpayouts.com/data/countries.json
    Данные о городах в json формате: api.travelpayouts.com/data/cities.json
    Данные об аэропортах в json формате: api.travelpayouts.com/data/airports.json
    Данные об авиакомпаниях в json формате: api.travelpayouts.com/data/airlines.json

    Мне нужно, чтобы из Json заменялись значения: 'airline', 'origin', 'destination'.

    Вот как выглядит таблица сейчас:
    [​IMG]
    Нужно, чтобы значения 'origin' и 'destination' брались из api.travelpayouts.com/data/cities.json и значение 'airline' бралось из api.travelpayouts.com/data/airlines.json

    Как это реализовать?

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    импортировать в mysql и потом через join выбирать нужное
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    получить нужные источники. итерировать один, подставляя данные по ключам из другого. возможно придется дополнительно подготовить массив в нужном формате.
     
  4. Arcadiy

    Arcadiy Активный пользователь

    С нами с:
    3 янв 2016
    Сообщения:
    23
    Симпатии:
    0
    На примере кода Вы можете показать?

    Добавлено спустя 18 секунд:
    На примере кода Вы можете показать?
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ganzal главное чтобы Arcadiy не выстрелил себе в ногу, будет без кэша все мегабайты каждый запрос по массиву проходить.

    Перенести тему в раздел "Сделайте за меня. Не хочу учиться, не хочу платить.", так как код простой, надо почитать книгу для новичков по PHP и MySQL, или всё таки у тебя есть знания?
     
  6. Arcadiy

    Arcadiy Активный пользователь

    С нами с:
    3 янв 2016
    Сообщения:
    23
    Симпатии:
    0
    Пробовал через И вывод значения ничего не получилось. Просто так бы не задавал вопрос, если бы сам смог.

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну так покажи код в том варианте, в котором ничего не получилось. А заодно пример вывода и какие ошибки пишет.
     
  8. Arcadiy

    Arcadiy Активный пользователь

    С нами с:
    3 янв 2016
    Сообщения:
    23
    Симпатии:
    0
    Код (PHP):
    1. <?php 
    2. $products = json_decode(file_get_contents('http://api.travelpayouts.com/data/cities.json'));
    3.  
    4. foreach ($products as $key => $value) { 
    5.     echo "<table class='mytable'><hr>";
    6.      foreach ($value as $k=> $v) {
    7.       
    8.            echo "<td>Рейс<br></td></tr>";
    9.            foreach ($v as $g=> $l) { 
    10.                      $g=str_replace ('trip_class','класс перелета',$g); 
    11.                      $g=str_replace ('show_to_affiliates',' ',$g); 
    12.                      $g=str_replace ('value','цена',$g); 
    13.                      $g=str_replace ('origin','город вылета',$g);
    14.                      $g=str_replace ('destination','город прилета',$g);
    15.                      $g=str_replace ('distance','дистанция',$g);
    16.                      $g=str_replace ('found_at','найдено',$g);
    17.                      $g=str_replace ('depart_date','дата вылета',$g);
    18.                      $g=str_replace ('return_date','дата возвращения',$g);
    19.                      echo "<tr><td>".$g."</td><td>".$l."</td></tr>";
    20.             } 
    21.      }
    22.      echo "</table>";  
    23. }
    24.  
    25. ?>
    Добавлено спустя 3 минуты:
    Методом тыка, не смейтесь

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А попробуй методом "подумать головой" написать этот алгоритм на русском языке, не на php. Разбери формат JSON, посмотрите, какие данные получаются в результате раскодировки http://api.travelpayouts.com/data/cities.json и т.п. Написать за тебя код - не сложно в данном случае. Но так ты никогда не научишься думать

    Добавлено спустя 5 минут 2 секунды:
    Ну даже, для первого варианта. Вот у тебя есть две таблицы (на бумажках), та, что ты привёл в начале и вот эта, типа
    Код (Text):
    1.  
    2. код города | название города
    3. MSC        | Moscow
    4. и т.д.
    И тебе начальник дал задание бы заменить все коды городов в первой таблице на их названия. Что бы ты стал делать? Подробно по шагам напиши на русском языке. Только очень-очень подробно, как будто хочешь научить это делать полного идиота.
     
  10. Arcadiy

    Arcadiy Активный пользователь

    С нами с:
    3 янв 2016
    Сообщения:
    23
    Симпатии:
    0
    У нас есть таблица значений Json.
    У нас есть путь запроса API
    В ответе API выводится код города
    В ответе json выводится Город
    Пусть
    Код Города=x
    Город=y
    Город и код города расположены в ячейках таблицы, которые пронумерованы n=>1
    Номер ячейки в таблице=n
    Пусть Х(n)=Y(n),
    Делаем запрос ApI, получаем значение Х(n), идем в Json ищем Y(n)
    Выводим Y(n)
    Как то так
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну вот, голова работает. На счёт X(n)=Y(n) - это я немного не понял, но вроде мысль работает. Ну если вы понимаете, чего нарисовали, то попробуйте перевести в код. Ну вот хотя бы шаг, когда вы ищите в json название города. Как говорится, step by step. Кстати, уровень знаний php какой? Циклы, ассоциативные массивы и прочее - не китайский язык уже?
     
  12. Arcadiy

    Arcadiy Активный пользователь

    С нами с:
    3 янв 2016
    Сообщения:
    23
    Симпатии:
    0
    Так могу, на практике не могу.

    Добавлено спустя 1 минуту 31 секунду:
    Никакой, только html и CSS
    Этим знания и ограничились. А здесь понадобилось.
     
  13. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну так тогда три варианта:
    1) Прочитать источники по php, http://php.ru/manual/langref.html, например, и сделать самому.
    2) Перенести тему во фриланс и заплатить тому, кто возмётся делать
    3) Перенести тему в "Сделайте за меня", и ждать, что кто-то сделает бесплатно.
     
  14. Arcadiy

    Arcadiy Активный пользователь

    С нами с:
    3 янв 2016
    Сообщения:
    23
    Симпатии:
    0
    Спасибо за дельные советы, знаю что все знания полученные опытом, преподавателями в универе, то время которое вы посвятили своим знаниям должно быть оценено материально, знаю и понимаю, но у меня нет материальной базы. Поэтому часть Ваших предложений мне не подходят, еще раз спасибо, с уважением.
     
  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну так укажите модераторам, в какой раздел вас перевести. В этом разделе вместо вас никто писать код не будет.
     
  16. Arcadiy

    Arcadiy Активный пользователь

    С нами с:
    3 янв 2016
    Сообщения:
    23
    Симпатии:
    0
    Вопрос решен, прошу администрацию закрыть данную тему, спасибо.
     
Статус темы:
Закрыта.