ОБНОВЛЕНИЕ
Просто небольшое примечание, поскольку я вижу, что это выглядит действительно глупо и бесполезно с чистым PHP, потому что там array_merge
просто работает. НО попробуйте это с драйвером PHP MongoDB, прежде чем бросаться в голосование против. Этот чувак БУДЕТ добавлять индексы по какой-либо причине и БУДЕТ разрушать объединенный объект. С моей наивной маленькой функцией слияние получается именно так, как и предполагалось с традиционным array_merge
.
Я знаю, что это старый вопрос, но я хотел бы добавить еще один случай, который у меня был недавно с запросами драйвера MongoDB, и ни один из них array_merge
и array_replace
не array_push
работал. У меня была немного сложная структура объектов, завернутых в массивы в array:
$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;
}