как сформировать многомерный json код на php

149
09 сентября 2019, 23:50

возникла необходимость вывести произвольную таксономию в json.

вывожу их так:

foreach($terms as $city) {
$city_name = $city->name;
$city_id = $city->term_id;
echo $city_name. ': '. $city_id;
}

но как мне превратить результат работы этого цикла в json формат такого вида?

{
  "results": [
    {
      "city_id": 1,
      "city_name": "Москва"
    },
    {
      "city_id": 2,
      "city_name": "Волгоград"
    }
  ],
  "pagination": {
    "more": true
  }
}
Answer 1

Собирайте многомерный массив из ваших свойств объекта $city, вы можете делать разного уровня массивы, добавляя [] - увеличим вложенность, максимальное количество уровней вложенности 255.

За каждый проход, новый массив, вида:

$array['city_id'] = $city->term_id;
$array['city_name'] = $city->name;
$array['loc']['x'] = 10;
$array['loc']['y'] = 10;

Вы конечно можете и так написать:

$array = [
   'city_id'=> $city->term_id,
   'city_name' => $city->name,
   'loc' => [
       'x' => 10,
       'y' => 10
    ]
];

А после - воспользоваться функцией:

$array = json_encode($array);

И получим результат:

{
    "city_id":1,
    "city_name":"Name",
    "loc":{
        "x":10,
        "y":10
    }
}
READ ALSO
Какие есть хуки/фильтры для указания скидки товару woocommerce?

Какие есть хуки/фильтры для указания скидки товару woocommerce?

Всем привет! Вопрос на засыпку: какие есть хуки/фильтры для указания скидки товару? Те

108
Как отправить выбранный чекбокс

Как отправить выбранный чекбокс

Есть код, который отправляет введенное значение input в базуНо необходимо еще, чтобы в базу отправлялся один из выбранных чекбоксов

129
Не парсит кириллицу PHP

Не парсит кириллицу PHP

Есть PHP парсер на библиотеке DiDOMНастроен был на одном тестовом сервере, работал

109
Почему может не работать shortcode в acf?

Почему может не работать shortcode в acf?

Нужно что бы работали шорткоды в дополнительных поляхИспользую хук с официального сайта

117