リファレンスマニュアルのarray_mergeの説明は以下の通りです。
array_merge() 2つ以上の配列のセルを結合し、1つの配列の値を前の配列に追加します。結果の配列を返します。
入力配列に同じ文字列キー名がある場合、キー名の後の値で前の値が上書きされます。ただし、配列に数値キーが含まれている場合、後続の値は元の値を上書きせず、追加されます。
2 つの違いは次のとおりです。
1. 配列キー名が数値キー名で、マージされる 2 つの配列に同じ名前の数値キーがある場合、array_merge() を使用しても元のキーは上書きされません。 「+」を使用して配列をマージすると、最初に出現した値が最終結果として返され、後続の配列で同じキー名を持つそれらの値が「破棄」されます (注: 上書きではなく、最初に出現した値が保持されます)。例:
コードをコピー コードは次のとおりです:
$array1 = array(1=>'0') ;
$array2 = array(1=> "data");
$result1 = $array2 $array1;/*結果は $array2 の値です*/
print_r($result);
$result = $array1 $array2 ;/*結果は $array1 の値です*/
print_r($result);
$result3 = array_merge($array2,$array1);/*結果は $array2 と $array1 の値です。キー名は再割り当てされます*/
print_r($result3);
$result4 = array_merge($array1,$array2);/*結果は次の値です$array1 と $array2、キー名が再割り当てされます */
print_r($result4);
コードをコピー コードは次のとおりです:
配列
(
[1] => データ
)
配列
(
[1] => 0
)
配列
(
[0] => データ
[1] => 0
)
配列
(
[0] => [1] => data
)
$result1 = $array2 $array1;/*結果は $ の値ですarray2*/ print_r($result ); $result = $array1 $array2 ;/*結果は $array1*/ print_r($result); array_merge($array2,$array1);/*結果は $array1*/ print_r($result3);
$result4 = array_merge($array1,$array2);/*結果は $array2*/print_r($result4);
出力結果は次のとおりです:
コードをコピーします
コードは次のとおりです:
) 配列 ( [asd] => 0 )
配列(
[asd] => 0
)
配列
(
[asd] => データ
)