ОНОВЛЕННЯ
Лише коротка примітка, оскільки я бачу, це виглядає по-справжньому дурним, і це не має користі від чистого PHP, оскільки там array_merge
просто працює. АЛЕ спробуйте це за допомогою драйвера PHP MongoDB, перш ніж поспішати голосувати проти. Цей чувак БУДЕ додавати індекси з будь-якої причини, І ВРУЩАЄ об’єднаний об’єкт. З моєю наївною малою функцією об’єднання виходить саме таким, як це передбачалося, з традиційним array_merge
.
Я знаю, що це старе запитання, але я хотів би додати ще один випадок, який нещодавно був із запитами драйверів MongoDB, і жоден із них array_merge
, array_replace
а також не array_push
працював. У мене була трохи складна структура об'єктів, обгорнутих як масиви в масив:
$a = [
["a" => [1, "a2"]],
["b" => ["b1", 2]]
];
$t = [
["c" => ["c1", "c2"]],
["b" => ["b1", 2]]
];
І мені потрібно було об’єднати їх, зберігаючи таку саму структуру, як це:
$merged = [
["a" => [1, "a2"]],
["b" => ["b1", 2]],
["c" => ["c1", "c2"]],
["b" => ["b1", 2]]
];
Найкращим рішенням, яке я придумав, було таке:
public static function glueArrays($arr1, $arr2) {
$myArr = $arr1;
foreach ($arr2 as $arrayItem) {
$myArr[] = $arrayItem;
}
return $myArr;
}