Задать вопрос
@kolomat

Как соединить массивы по ключу?

Добрый день, помогите с таким вопросом
Есть два массива
(
    [0] => Array
        (
            [shipping_address] => 115
            [total] => 1
        )

    [1] => Array
        (
            [shipping_address] => 181
            [total] => 2
        )
)

Второй такого же плана
Array
(
    [0] => Array
        (
            [shipping_address] => 115
            [Longitude] => 30.542884000000000
            [Latitude] => 50.354786000000000
        )

    [1] => Array
        (
            [shipping_address] => 181
            [Longitude] => 30.461719000000000
            [Latitude] => 50.509979000000000
        )
)

Не подскажите как их объедить в один по ключу? Что бы получить массив такого плана
Array
(
    [0] => Array
        (
            [shipping_address] => 115
            [total] => 1
            [Longitude] => 30.542884000000000
            [Latitude] => 50.354786000000000
        )

    [1] => Array
        (
            [shipping_address] => 181
            [total] => 2
            [Longitude] => 30.461719000000000
            [Latitude] => 50.509979000000000
        )
)
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F
$key = 'shipping_address';
$_arr1 = array_combine(array_column($arr1, $key), $arr1);

$result = [
  ...array_map(fn($n) => $n + ($_arr1[$n[$key]] ?? []), $arr2),
  ...array_diff_key($_arr1, array_combine(array_column($arr2, $key), $arr2))
];
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Spartak-2205
@Spartak-2205
Разработка и создание сайтов
foreach ($arr2 as $key => $value) {
	$arr1[$key] += $value;
}
Ответ написан
Комментировать
rpsv
@rpsv
делай либо хорошо, либо никак
array_merge_recursive
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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