Как в PHP слить 2 массива с одинаковыми значениями, и перезаписать их?
Пример:
Первый массив
Array
(
[89] => Array
(
[NAME] => "Имя1"
[ELEMENTS] => Array
(
[2702] => "Значение1"
[2703] => "Значение2"
[2704] => "Значение3"
)
)
[90] => Array
(
[NAME] => "Имя2"
[ELEMENTS] => Array
(
[2694] => "Значение1"
[2695] => "Значение2"
)
)
)
Второй массив
Array
(
[100] => Array
(
[NAME] => "Имя1"
[ELEMENTS] => Array
(
[2755] => "Значение1"
[2756] => "Значение2"
)
)
[101] => Array
(
[NAME] => "Имя2"
[ELEMENTS] => Array
(
[2800] => "Значение1"
[2801] => "Значение2"
)
)
)
Как их слить так, чтобы получился такой массив, то есть значения из второго массива перезаписали одинаковые значения первого:
Array
(
[100] => Array
(
[NAME] => "Имя1"
[ELEMENTS] => Array
(
[2755] => "Значение1"
[2756] => "Значение2"
[2704] => "Значение3"
)
)
[101] => Array
(
[NAME] => "Имя2"
[ELEMENTS] => Array
(
[2800] => "Значение1"
[2801] => "Значение2"
)
)
)
Обычно массивы сливают не по значениям, а по ключам.
Для такой структуры массивов ($adata
, $bdata
) можно решить задачу, например, следующим образом.
$result = [];
foreach($adata as $a) {
foreach ($bdata as $k => $b) {
if ($a['NAME'] != $b['NAME']) continue;
$fa = array_flip($a['ELEMENTS']);
$fb = array_flip($b['ELEMENTS']);
$el = array_flip(array_merge($fa, $fb));
$result[$k] = ['NAME' => $a['NAME'], 'ELEMENTS' => $el];
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Имеется массив городов, нужно сделать множественный поиск по этому массиву
Возникла проблема, при отправке одно сообщения бот отвечает кучей, я много чего перебровал, но все четно
Хочу получить данные о всех досках имеющихся в моем аккеТ
в моделе FunctionParameterphp