Maison  >  Article  >  développement back-end  >  Analyse des similitudes et des différences entre trois méthodes de fusion de tableaux PHP

Analyse des similitudes et des différences entre trois méthodes de fusion de tableaux PHP

黄舟
黄舟original
2017-11-14 15:21:181873parcourir

Ensuite, dans l'article précédent, nous vous avons présenté plusieurs méthodes pour réaliser la fusion de tableaux PHP Je pense que tout le monde en a une certaine compréhension. Alors, quelles sont les similitudes et les différences de ces méthodes ? Aujourd'hui, nous allons continuer à vous présenter les similitudes et les différences des trois méthodes de fusion de tableaux php !

1. "+"Opérateur

Règle : Lorsque les noms de clés des deux tableaux sont des noms de clés numériques Ou chaîne le nom de clé peut être directement +, $c = $a + $b, ajouter ($b est un nom de clé qui n'existe pas dans $a) le nom de clé et la valeur après $a.

Remarque :

  1. n'écrase pas, il ajoute simplement les noms de clés inexistants et les valeurs correspondantes.

  2. Les noms de clés ne sont pas réindexés.

  3. Qu'il s'agisse de noms de clés entièrement numériques ou mixtes, seuls le nom de clé et la valeur sont ajoutés. Si les noms de clés sont identiques, aucun ajout n'est effectué, c'est-à-dire le premier qui apparaît. la valeur est renvoyée comme résultat final.

1    <?php    
2    $fruit_1 = array( &#39;apple&#39;, &#39;banana&#39; );    
3    $fruit_2 = array( &#39;orange&#39;, &#39;lemon&#39; );    
4    $fruit = $fruit_1 + $fruit_2;    
5    var_dump($fruit);    
6    
7    // output:    
8    // array(2) { [0]=> string(5) "apple" [1]=> string(6) "banana" }    
9    ?>

Nom de la clé numérique :

1    <?php    
2    $a = array( 66=>&#39;a&#39; );    
3    $b = array( 60=>&#39;u&#39;, 66=>&#39;c&#39; );    
4    $c = $a + $b;    
5    var_dump($c);    
6    
7    // output:    
8    // array(2) { [66]=> string(1) "a" [60]=> string(1) "u" }    
9    ?>

Nom de la clé de caractère :

1    <?php    
2    $a = array( 1=>&#39;a&#39;, 2=>&#39;b&#39;, &#39;c&#39;=>&#39;c&#39;, &#39;d&#39;=>&#39;d&#39; );    
3    $b = array( 1=>&#39;u&#39;, 3=>&#39;v&#39;, &#39;c&#39;=>&#39;w&#39;, &#39;d&#39;=>&#39;x&#39;, &#39;y&#39;=>&#39;y&#39;, 60=>&#39;z&#39; );    
4    $c = $a + $b;    
5    var_dump($c);    
6    
7    // output:    
8  // array(7) { [1]=> string(1) "a" [2]=> string(1) "b" ["c"]=> string(1) "c" ["d"]=> string(1) "d" [3]=> string(1) "v" ["y"]=> string(1) "y" [60]=> 
string(1) "z" }    
9    ?>

2. tableau array_merge ( array array1 [, array array2 [, array ...]] )

Règle : array_merge () Combine les cellules d'un ou plusieurs tableaux, avec les valeurs d'un tableau ajoutées au tableau précédent. Renvoie le tableau résultant. Si le tableau d'entrée a le même nom de clé de chaîne, la valeur après le nom de clé écrasera la valeur précédente. Cependant, si le tableau contient des clés numériques, les valeurs suivantes n'écraseront pas les valeurs d'origine mais leur seront ajoutées. Si seul un tableau est donné et que le tableau est indexé numériquement, les clés sont réindexées consécutivement.

Remarque :

  1. L'index numérique ne sera pas écrasé une fois les valeurs fusionnées, les noms de clés seront réindexés en continu

  2. .
  3. Nom de la clé de chaîne, la valeur après le nom de la clé écrasera la valeur précédente

1    <?php    
2    $a = array( &#39;a&#39; );    
3    $b = array( &#39;u&#39; );    
4    $c = array_merge($a, $b);    
5    var_dump($c);    
6    
7    // output:    
8    // array(2) { [0]=> string(1) "a" [1]=> string(1) "u" }    
9    ?>

Nom de la clé numérique :

1    <?php    
2    $a = array( 66=>&#39;a&#39; );    
3    $b = array( 60=>&#39;u&#39;, 66=>&#39;c&#39; );    
4    $c = array_merge($a, $b);    
5    var_dump($c);    
6    
7    // output:    
8    // array(3) { [0]=> string(1) "a" [1]=> string(1) "u" [2]=> string(1) "c" }    
9    ?>

Nom de la clé de caractère :

1    <?php    
2    $a = array( 1=>&#39;a&#39;, 2=>&#39;b&#39;, &#39;c&#39;=>&#39;c&#39;, &#39;d&#39;=>&#39;d&#39; );    
3    $b = array( 1=>&#39;u&#39;, 3=>&#39;v&#39;, &#39;c&#39;=>&#39;w&#39;, &#39;d&#39;=>&#39;x&#39;, &#39;y&#39;=>&#39;y&#39;, 60=>&#39;z&#39; );    
4    $c = array_merge($a, $b);    
5    var_dump($c);    
6    
7    // output:    
8    // array(8) { [0]=> string(1) "a" [1]=> string(1) "b" ["c"]=> string(1) "w" ["d"]=> string(1) "x" [2]=> string(1) "u" [3]=> string(1) "v" ["y"]=> 
string(1) "y" [4]=> string(1) "z" }    
9    ?>

3. tableau array_merge_recursive ( array array1 [, array ...] )

array_merge_recursive() Fusionne les cellules d'un ou plusieurs tableaux, avec les valeurs d'un tableau ajoutées au tableau précédent. Renvoie le tableau résultant.

Si les tableaux d'entrée ont le même nom de clé de chaîne, alors ces valeurs​​seront fusionnées dans un tableau, qui continuera de manière récursive, donc si une valeur elle-même est un tableau, cette fonction suivra les entrées correspondantes dans un autre tableau.

Cependant, si les tableaux ont le même nom de clé de tableau, cette dernière valeur n'écrasera pas la valeur d'origine, mais y sera ajoutée.

Remarque : les règles sont fondamentalement les mêmes que pour array_merge, sauf que l'ajout récursif est utilisé lors du traitement du même nom de clé de caractère.

1    <?php    
2    $a = array( &#39;a&#39; );    
3    $b = array( &#39;u&#39; );    
4    $c = array_merge_recursive($a, $b);    
5    var_dump($c);    
6    
7    // output:    
8    // array(2) { [0]=> string(1) "a" [1]=> string(1) "u" }    
9    ?>

Nom de la clé numérique :

1    <?php    
2    $a = array( 66=>&#39;a&#39; );    
3    $b = array( 60=>&#39;u&#39;, 66=>&#39;c&#39; );    
4    $c = array_merge_recursive($a, $b);    
5    var_dump($c);    
6    
7    // output:    
8    // array(3) { [0]=> string(1) "a" [1]=> string(1) "u" [2]=> string(1) "c" }    
9    ?>

Nom de la clé de caractère :

1    <?php    
2    $a = array( 1=>&#39;a&#39;, 2=>&#39;b&#39;, &#39;c&#39;=>&#39;c&#39;, &#39;d&#39;=>&#39;d&#39; );    
3    $b = array( 1=>&#39;u&#39;, 3=>&#39;v&#39;, &#39;c&#39;=>&#39;w&#39;, &#39;d&#39;=>&#39;x&#39;, &#39;y&#39;=>&#39;y&#39;, 60=>&#39;z&#39; );    
4    $c = array_merge_recursive($a, $b);    
5    var_dump($c);    
6    
7    // output:    
8    // array(8) { [0]=> string(1) "a" [1]=> string(1) "b" ["c"]=> array(2) { [0]=> string(1) "c" [1]=> string(1) "w" } ["d"]=> array(2) { [0]=> 
string(1) "d" [1]=> string(1) "x" } [2]=> string(1) "u" [3]=> string(1) "v" ["y"]=> string(1) "y" [4]=> string(1) "z" }    
9    ?>

Résumé :

Cet article présente en détail les similitudes et les différences des trois méthodes de fusion de tableaux php à travers des exemples. Chaque méthode a ses avantages et ses inconvénients. Les amis peuvent choisir la méthode appropriée en fonction de leurs propres besoins !

Recommandations associées :

Exemple de fusion et de déduplication de tableaux php


Plusieurs exemples de fusion de tableaux php Introduction aux méthodes


Remarques sur l'utilisation de la fonction array_merge() dans un tableau php

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