@SmirnovaNastya

Как в PHP сравнить массивы и добавить несуществующие свойства после сравнения?

Как добавить в массив $array2 из массива $array те свойства, которых нет в $array2? Сравнение только по name. Новый элемент в массив $array2 из массива $array свойство id передавать не нужно, только name. Полностью копировать нельзя, так как id уникально.

$array = [
0 => [
'name'=> 'Any',
'id' => 14
],
1 => [
'name'=> 'Oleg',
'id' => 12
],
2 => [
'name'=> 'Maks',
'id' => 16
],
];


$array2 = [
0 => [
'name'=> 'Any',
'id' => 11
],
1 => [
'name'=> 'Oleg',
'id' => 13
],
];

т.е на выходе должно получиться так:
$array2 = [
0 => [
'name'=> 'Any',
'id' => 11
],
1 => [
'name'=> 'Oleg',
'id' => 13
],
2 => [
'name'=> 'Maks'
],
];
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
@lil_koi
лучший из худших
используй цикл foreach внутри foreach, ищи во втором массиве первый элемент, если не нашёл, то пуш во второй массив
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@grek_cheburek
Программист самоучка
Я бы тоже прошелся циклом по первому массиву, сравнивал бы его со вторым и если во втором нет имени, как в первом, тогда его добавляю.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы