前回の記事では、php 配列のマージを実現するためのいくつかの方法を紹介しました。それでは、これらの方法の類似点と相違点は何でしょうか?今日も引き続き、PHP の配列結合の 3 つの方法の類似点と相違点を紹介していきます。
1. "+"演算子
ルール: 2 つの配列のキー名が数値キー名であるか、文字列キー名が直接 + である場合、$c = $a + $b、 $a の後にキー名と値 ($a に存在しない $b のキー名) を追加します。
注:
は上書きせず、存在しないキー名と対応する値を追加するだけです。
キー名のインデックスは再作成されません。
すべて数値キー名であっても、混合であっても、キー名と値のみが追加されます。キー名が同じ場合は追加は実行されません。つまり、最初に出現した値が最終結果として返されます。 。
1 <?php 2 $fruit_1 = array( 'apple', 'banana' ); 3 $fruit_2 = array( 'orange', 'lemon' ); 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=>'a' ); 3 $b = array( 60=>'u', 66=>'c' ); 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=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' ); 3 $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' ); 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 <?php 2 $a = array( 'a' ); 3 $b = array( 'u' ); 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=>'a' ); 3 $b = array( 60=>'u', 66=>'c' ); 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=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' ); 3 $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' ); 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( 'a' ); 3 $b = array( 'u' ); 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=>'a' ); 3 $b = array( 60=>'u', 66=>'c' ); 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=>'a', 2=>'b', 'c'=>'c', 'd'=>'d' ); 3 $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z' ); 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配列マージの3つの方法の類似点と相違点の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。