Home  >  Article  >  Backend Development  >  Analysis of similarities and differences between three methods of php array merging

Analysis of similarities and differences between three methods of php array merging

黄舟
黄舟Original
2017-11-14 15:21:181873browse

So in our previous article, we introduced to you several methods to achieve php array merging. I believe everyone knows about it. So what are the similarities and differences of these methods? Today we will continue to introduce to you the similarities and differences of the three methods of php array merging!

1. "+"Operator

Rule: When the key names of the two arrays are numeric key names Or StringThe key name can be directly +, $c = $a + $b, and append (the key name of $b does not exist in $a) key name and value after $a.

Note:

  1. does not overwrite, just appends non-existent key names and corresponding values.

  2. Key names are not re-indexed.

  3. Whether it is all numeric key names or a mixture, only the key name and value are appended. If the key names are the same, no appending is performed, that is, the first appearing value is returned as the final result.

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    ?>

Numeric key name:

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    ?>

Character key name:

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, array array_merge (array array1 [, array array2 [, array ...]] )

## Rules: array_merge() merges one or more The elements of two arrays are combined, and the values ​​in one array are appended to the end of the previous array. Returns the resulting array. If the input array has the same string key name, the value after the key name will overwrite the previous value. However, if the array contains numeric keys, the subsequent values ​​will not overwrite the original values ​​but will be appended to them. If only an array is given and the array is numerically indexed, the keys are re-indexed consecutively.

Note:

  1. Numeric index will not be overwritten. After the values ​​are merged, the key names will be re-indexed continuously

  2. String key name, the value after the key name will overwrite the previous value

  3. 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    ?>

Numeric key name:

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    ?>

Character key name :

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、array array_merge_recursive (array array1 [, array ...] )

array_merge_recursive() Combines the elements of one or more arrays, with the values ​​in one array appended to the previous array. Returns the resulting array.

If the input arrays have the same string key name, these values ​​​​will be merged into an array, which will go on recursively, so if a value itself is an array, this function will follow the corresponding entries into another array.

However, if the arrays have the same array key name, the latter value will not overwrite the original value, but will be appended to it.

Note: The rules are basically the same as array_merge, except that recursive append is used when processing the same character key name.

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    ?>

Numeric key name:

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    ?>

Character key name:

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    ?>

Summary:

This article Through examples, the similarities and differences of the three methods of php array merging are introduced in detail. Each method has its advantages and disadvantages. Friends can choose their own suitable method according to their own needs!

related suggestion:

Example of php array merging and deduplication


#php array merging Introduction to this method


php array merge array_merge() function usage precautions

The above is the detailed content of Analysis of similarities and differences between three methods of php array merging. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn