Opérateur d'union de tableau ( ) : Comprendre son comportement de fusion
Introduction
Le " " L'opérateur, lorsqu'il est appliqué aux tableaux en PHP, permet la fusion des données de deux tableaux. Cependant, son comportement peut prêter à confusion car il ne combine pas toujours tous les éléments. Cet article explore les mécanismes de l'opérateur " " et donne un aperçu de la façon dont il fusionne les tableaux.
Comment fonctionne l'opérateur " "
Comme indiqué dans les opérateurs du langage PHP Manuel, l'opérateur " " ajoute les éléments du tableau de droite au tableau de gauche. Surtout, pour les clés qui apparaissent dans les deux tableaux, les éléments du tableau de gauche ont priorité et écrasent ceux du tableau de droite.
Exemple :
Considérez ce qui suit exemple :
$test = array('hi'); $test += array('test', 'oh'); var_dump($test);
Sortie :
array(2) { [0]=> string(2) "hi" [1]=> string(2) "oh" }
Ici, l'opérateur " " ajoute les éléments du tableau de droite ("test" et "oh ') dans le tableau de gauche (« salut »). Cependant, puisque « hi » est présent dans les deux tableaux, la valeur du tableau de droite est ignorée et la valeur du tableau de gauche est conservée. En conséquence, la sortie ne produit que deux éléments : "hi" et "oh", où "oh" est ajouté à partir du tableau de droite.
Comparaison avec array_merge()
Il est important de noter que le comportement de l'opérateur " " diffère de la fonction array_merge() intégrée. array_merge() combine tous les éléments des deux tableaux, en écrasant les clés en double par les valeurs du tableau de droite.
Détails d'implémentation
La logique d'implémentation du " " L'opérateur est équivalent à l'extrait suivant :
$union = $array1; foreach ($array2 as $key => $value) { if (false === array_key_exists($key, $union)) { $union[$key] = $value; } }
Cette logique garantit que les éléments du tableau de gauche sont prioritaires. Seuls les éléments avec des clés uniques dans le tableau de droite sont ajoutés à l'union.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!