У меня есть массив JSON нескольких объектов, вот пример:PHP - объединение массивов с таким же значением ключа
$people = [{"name":"John", "color":"green"},
{"name":"Mary", "color":"green"},
{"name":"Bob", "color":"red"}]
Я использую json_decode($people, true)
, чтобы преобразовать их в массив ...
Теперь, скажем, Я хочу объединить те, которые имеют то же самое color
. Я должен был бы сделать array_merge_recursive($people[0], $people[1])
, потому что они оба имеют green
как color
. Обратите внимание, что я должен указать, какие из них я хочу объединить рекурсивно.
Как я могу пройти через $people
после того, как он был декодирован в формат массива и автоматически рекурсивно объединить те, которые имеют одинаковое значение ключа?
Что-то вроде этого:
foreach($people as $person) {
// If a person has same color of previous
// person then merge them recursively.
}
Так что я мог бы получить это после того, как зацикливание:
[{"name":"John, Mary", "color":"green, green"},
{"name":"Bob", "color":"red"}]
Используйте ассоциативный массив, чей ключ является цветом. – Barmar