Maison > développement back-end > tutoriel php > Comment l'opérateur ' ' de PHP fusionne-t-il les tableaux et gère-t-il les clés en double ?

Comment l'opérateur ' ' de PHP fusionne-t-il les tableaux et gère-t-il les clés en double ?

Barbara Streisand
Libérer: 2024-12-07 10:26:13
original
577 Les gens l'ont consulté

How Does PHP's

Fusion de tableaux avec l'opérateur " " : dévoiler son comportement

En PHP, l'opérateur facilite la fusion de deux tableaux, en ajoutant les éléments du tableau de droite au tableau de gauche. Cependant, comprendre comment il gère les clés en double est crucial.

Comment ça fonctionne

Selon le manuel PHP :

The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.
Copier après la connexion

Exemple

Considérez ce qui suit exemple :

$test = array('hi');
$test += array('test', 'oh');
var_dump($test);
Copier après la connexion

Sortie :

array(2) {
  [0]=>
  string(2) "hi"
  [1]=>
  string(2) "oh"
}
Copier après la connexion

Explication

L'opérateur ajoute les éléments du deuxième tableau (test, oh) à la fin du premier tableau (salut). Cependant, il ne remplace pas la clé en double (hi), elle reste donc dans le tableau fusionné.

Comparaison avec array_merge()

L'opérateur diffère du fonction array_merge() dans son comportement lors de la gestion des clés en double. array_merge() écrase les clés en double du tableau de gauche par les clés du tableau de droite.

Détails d'implémentation

L'implémentation au niveau C de l'opérateur peut être trouvé dans php-src/Zend/zend_operators.c. La logique est équivalente à l'extrait suivant :

$union = $array1;

foreach ($array2 as $key => $value) {
    if (false === array_key_exists($key, $union)) {
        $union[$key] = $value;
    }
}
Copier après la connexion

Cet extrait crée un nouveau tableau ($union) basé sur le premier tableau ($array1) et ajoute des clés et des valeurs non dupliquées du deuxième tableau ( $array2).

Conclusion

L'opérateur en PHP fournit un moyen pratique de fusionner des tableaux, mais il est crucial de comprendre son comportement spécifique lorsqu'il rencontre des clés en double. La fonction array_merge() offre une alternative qui écrase les clés en double, permettant ainsi plus de contrôle sur le tableau fusionné.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal