Maison  >  Article  >  développement back-end  >  Quand l’opérateur peut-il concaténer des tableaux en toute sécurité en PHP ?

Quand l’opérateur peut-il concaténer des tableaux en toute sécurité en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 14:41:02172parcourir

When Can the   Operator Safely Concatenate Arrays in PHP?

Comprendre l'opérateur de concaténation de tableaux en PHP

En PHP, l'opérateur peut être utilisé pour concaténer deux tableaux. Cependant, certains cas peuvent survenir où cet opérateur se comporte de manière inattendue, conduisant à des résultats incorrects.

Considérez le code suivant :

<code class="php">$array = array('Item 1');

$array += array('Item 2');

var_dump($array);</code>

La sortie attendue serait un tableau contenant à la fois « Article 1 » et « Article 2 ». Cependant, le résultat réel est :

array(1) {
  [0] => string(6) "Item 1"
}

Cette différence se produit car PHP réduit les éléments du tableau avec des clés en double lors de l'utilisation de l'opérateur. Dans ce cas, les deux éléments ont une clé de 0, ce qui fait que seul le premier élément est conservé.

Pour résoudre ce problème et concaténer correctement les tableaux, il est recommandé d'utiliser la fonction array_merge() à la place.

<code class="php">$arr1 = array('foo');
$arr2 = array('bar');

// Will contain array('foo', 'bar');
$combined = array_merge($arr1, $arr2);</code>

Array_merge() préserve la structure du tableau, garantissant que les éléments avec des clés différentes sont correctement combinés.

Dans les scénarios où les éléments du tableau possèdent des clés uniques, l'opérateur peut être un choix approprié.

<code class="php">$arr1 = array('one' => 'foo');
$arr2 = array('two' => 'bar');

// Will contain array('one' => 'foo', 'two' => 'bar');
$combined = $arr1 + $arr2;</code>

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!

Déclaration:
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