ホームページ >バックエンド開発 >PHPチュートリアル >php配列マージの3つの方法の類似点と相違点の分析

php配列マージの3つの方法の類似点と相違点の分析

黄舟
黄舟オリジナル
2017-11-14 15:21:181965ブラウズ

前回の記事では、php 配列のマージを実現するためのいくつかの方法を紹介しました。それでは、これらの方法の類似点と相違点は何でしょうか?今日も引き続き、PHP の配列結合の 3 つの方法の類似点と相違点を紹介していきます。

1. "+"演算子

ルール: 2 つの配列のキー名が数値キー名であるか、文字列キー名が直接 + である場合、$c = $a + $b、 $a の後にキー名と値 ($a に存在しない $b のキー名) を追加します。

注:

  1. は上書きせず、存在しないキー名と対応する値を追加するだけです。

  2. キー名のインデックスは再作成されません。

  3. すべて数値キー名であっても、混合であっても、キー名と値のみが追加されます。キー名が同じ場合は追加は実行されません。つまり、最初に出現した値が最終結果として返されます。 。

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

数値キー名:

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

文字キー名:

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

ルール: array_merge() は 1 つ以上の配列のセルを結合し、1 つの配列の値が前の配列に追加されます。結果の配列を返します。入力配列に同じ文字列キー名がある場合、キー名の後の値で前の値が上書きされます。ただし、配列に数値キーが含まれている場合、後続の値は元の値を上書きせず、追加されます。配列のみが指定され、その配列が数値的にインデックス付けされている場合、キーは連続して再インデックス付けされます。

注:

  1. 数値インデックスは、値がマージされた後、継続的に再インデックスされます

  2. 文字列キー名、その後、キー名の後の値が上書きされます。前の値

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

数値キー名:

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

文字キー名:

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

array _merge_recursive() 1 つ以上の配列を結合する セルが結合され、1 つの配列の値が前の配列に追加されます。結果の配列を返します。

入力配列が同じ文字列キー名を持つ場合、値は配列にマージされ、再帰的に続行されます。そのため、値自体が配列の場合、この関数は対応するエントリのマージに従ってそれを配置します。別の配列に。

ただし、配列の配列キー名が同じ場合、後の値は元の値を上書きせず、元の値に追加されます。

注: ルールは基本的に array_merge と同じですが、同じ文字キー名を処理するときに再帰的追加が使用される点が異なります。

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

数値キー名:

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

文字キー名:

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

概要:

この記事では、PHP 配列をマージする 3 つの方法の類似点と相違点を例を通して詳しく紹介します。デメリット、友達 自分のニーズに応じて適切な方法を選択できます。

関連するおすすめ:

PHP配列のマージと重複排除の例


PHP配列のマージのいくつかの方法の紹介


array_merge()関数を使用する際のPHP配列のマージに関する注意事項

以上がphp配列マージの3つの方法の類似点と相違点の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。