1. "+" 演算子
規則:
2 つの配列のキー名が数値キー名または文字列の場合 Key name
$c = $a + $b
$a の後に追加 ($b は $a に存在しないキー名) キー名と値
注:
1. 上書きはせず、存在しないキー名と対応する値を追加するだけです
2. キー名のインデックスは再作成されません
3. すべての数値キー名であっても、混合であっても、キー名と値のみが追加されます。キー名が同じ場合、追加は行われません。つまり、最初に出現した値が追加されます。最終結果として返される
例 1: 数値キー名
$a = array( 'a', ); $b = array( 'u', ); $c = $a + $b; var_dump($c); output: array(1) { [0]=> string(1) "a" }
例 2: 数値キー名
$a = array( 66=>'a', ); $b = array( 60=>'u', 66=>'c' ); $c = $a + $b; var_dump($c); output: array(2) { [66]=> string(1) "a" [60]=> string(1) "u" }
例 3: 文字キー名
<?php $a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d', ); $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z', ); $c = $a + $b; var_dump($c); ?> output: 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" }
2. array array_merge ( array array1 [, array array2 [, array ...]] )
ルール:
Array_merge() 1 つ以上の配列のセルを結合し、1 つの配列の値が前の配列に追加されます。結果の配列を返します。
入力配列に同じ文字列キー名がある場合、キー名の後の値で前の値が上書きされます。
ただし、配列に数値キー名が含まれている場合、後続の値は元の値を上書きせず、追加されます。
配列のみが指定され、その配列が数値的にインデックス付けされている場合、キーは連続的に再インデックス付けされます。
注:
1. 値がマージされた後、キー名のインデックスは継続的に再作成されます
2、文字列キー名、キー名の後の値は前の値を上書きします
例 1: 数値キー名
$a = array( 'a', ); $b = array( 'u', ); $c = array_merge($a, $b); var_dump($c); output: array(2) { [0]=> string(1) "a" [1]=> string(1) "u" }
例 2: 数値キー名
$a = array( 66=>'a', ); $b = array( 60=>'u', 66=>'c' ); $c = array_merge($a, $b); var_dump($c); output: array(3) { [0]=> string(1) "a" [1]=> string(1) "u" [2]=> string(1) "c" }
例 3: 文字キー名
$a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d', ); $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z', ); $c = array_merge($a, $b); var_dump($c); output: 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" }
3. array array_merge_recursive ( array array1 [, array ...] )
array_merge_recursive() 1 つ以上の配列のセルを結合します。結合すると、1 つの配列内の値が前の配列に追加されます。結果の配列を返します。
入力配列に同じ文字列キー名がある場合、値は配列にマージされ、それが再帰的に行われるため、値自体が配列の場合、この関数はそれを次のように配置します。対応するエントリは別の配列にマージされます。
ただし、配列の配列キー名が同じ場合、後の値は元の値を上書きせず、追加されます。
注:
1. ルールは基本的に array_merge と同じですが、同じ文字キー名を処理する場合に再帰的追加が使用される点が異なります
例 1 :テンキー名
$a = array( 'a', ); $b = array( 'u', ); $c = array_merge_recursive($a, $b); var_dump($c); output: array(2) { [0]=> string(1) "a" [1]=> string(1) "u" }
例 2: 数値キー名
$a = array( 'a', ); $b = array( 'u', ); $c = array_merge_recursive($a, $b); var_dump($c); output: array(2) { [0]=> string(1) "a" [1]=> string(1) "u" }
例 3: 文字キー名
$a = array( 1=>'a', 2=>'b', 'c'=>'c', 'd'=>'d', ); $b = array( 1=>'u', 3=>'v', 'c'=>'w', 'd'=>'x', 'y'=>'y', 60=>'z', ); $c = array_merge_recursive($a, $b); var_dump($c); output: 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" }