Как вывести или объединить 2 json в php?

220
20 июля 2018, 10:30

Есть 2 JSON по типу:

"item":
[{      "id": "550",
      "name": "Серега"
}]

И второй JSON:

"item":
[{      "id": "550",
       "city": "LA"
}].

Собственно, как их вывести в одном цикле? Чтоб по id подставлялись недостающие ключи и значения, либо привести их к виду:

  "item":
        [{      "id": "550",
                "name": "Серега",
                "city": "LA"
        }].
Answer 1
$a = json_decode('{"item":
[{      "id": "550",
      "name": "Серега"
}]}', true);
$b = json_decode('{"item":
[{      "id": "550",
       "city": "LA"
}]}', true);
print_r(array_replace_recursive($a, $b));

Все гениальное, просто)

Answer 2

Вам нужно создать отдельный массив, куда вы внесёте все общие значения. Через $data[]=...

Answer 3

Можно декодировать json с помощью json_decode и использовать array_merge.

Answer 4
$a = '{"item":
[{      "id": "550",
      "name": "Серега"
},
{      "id": "551",
      "name": "Серег"
}]}';
$b = '{"item":
[{      "id": "550",
       "city": "LA"
},
{      "id": "551",
      "city": "LA"
}]}';
// Get assoc arrays
$a_val = json_decode($a, true);
$b_val = json_decode($b, true);
$arr = [];
foreach($a_val['item'] as $k => $v){
   // Merge array
   $arr [] = array_merge($a_val['item'][$k], $b_val['item'][$k]);
}
// Create new JSON with array
$res = json_encode(['item' => $arr], JSON_UNESCAPED_UNICODE);
print_r($res);
  • json_decode(array, assoc) - получаем ассоциативный массив
  • array_merge(arr1, arr2) - соединяет два или более массива
  • json_encode(array) - возвращает JSON - представление данных

Почитать о array_merge

READ ALSO
Custom QFileSystemModel

Custom QFileSystemModel

Создаю QFileSystemModel, помещаю в QTableView или QTreeView, отображается 4 колонки с именем, размером, типом и датой модификации файлаКак сделать что-бы QFileSystemModel...

235
QUdpSocket почему не отправляются данные?

QUdpSocket почему не отправляются данные?

Реализую клиент-серверное приложение, в локальной сети может быть несколько клиентов и несколько серверов, клиенты могут "подписаться" на данные...

236
Почему вылезает ошибка c2280?

Почему вылезает ошибка c2280?

Задача следующая: Реализовать c++ объект, который предоставил бы возможность менять тип данных во время исполненияХранение значения типа...

211
Не работает флаг смены хода

Не работает флаг смены хода

Есть публичное поле класса — gamer, которое служит флагом смены хода

212