AGGIORNAMENTO
Solo una breve nota, come posso vedere sembra davvero stupido, e non ha un buon uso con PHP puro perché array_merge
funziona solo lì. MA provalo con il driver PHP MongoDB prima di correre a downvote. Quel tizio aggiungerà indici per qualsiasi motivo e rovinerà l'oggetto unito. Con la mia piccola funzione ingenua, l'unione esce esattamente come avrebbe dovuto con un tradizionale array_merge
.
So che è una vecchia domanda, ma vorrei aggiungere un altro caso che ho avuto di recente con query sui driver MongoDB e nessuno dei quali array_merge
, array_replace
né array_push
funzionato. Avevo una struttura un po 'complessa di oggetti avvolti come array in array:
$a = [
["a" => [1, "a2"]],
["b" => ["b1", 2]]
];
$t = [
["c" => ["c1", "c2"]],
["b" => ["b1", 2]]
];
E avevo bisogno di unirli mantenendo la stessa struttura in questo modo:
$merged = [
["a" => [1, "a2"]],
["b" => ["b1", 2]],
["c" => ["c1", "c2"]],
["b" => ["b1", 2]]
];
La migliore soluzione che ho trovato è stata questa:
public static function glueArrays($arr1, $arr2) {
$myArr = $arr1;
foreach ($arr2 as $arrayItem) {
$myArr[] = $arrayItem;
}
return $myArr;
}