array_merge と array + array の違いは何ですか? [重複] 質問する

array_merge と array + array の違いは何ですか? [重複] 質問する

かなり簡単な質問です。次の違いは何でしょうか?

$merged = array_merge($array1, $array2);

そして

$merged = $array1 + $array2;

?

ベストアンサー1

以下に簡単な説明テストを示します。

$ar1 = [
   0  => '1-0',
  'a' => '1-a',
  'b' => '1-b'
];


$ar2 = [
   0  => '2-0',
   1  => '2-1',
  'b' => '2-b',
  'c' => '2-c'
];

print_r($ar1+$ar2);

print_r(array_merge($ar1,$ar2));

結果:

Array
(
  [0] => 1-0
  [a] => 1-a
  [b] => 1-b
  [1] => 2-1
  [c] => 2-c
)
Array
(
  [0] => 1-0
  [a] => 1-a
  [b] => 2-b
  [1] => 2-0
  [2] => 2-1
  [c] => 2-c
)

重複する非数値キーは、union 演算子を使用して最初の値を取得しますが、array_merge を使用して後の値を取得することに注意してください。

数値キーの場合、最初の値は union 演算子で使用されますが、すべての値は array_merge で使用され、再インデックスされるだけです。

私は通常、連想配列には union 演算子を使用し、数値には array_merge を使用します。もちろん、連想配列にも array_merge を使用できますが、後者の値は前の値を上書きします。

おすすめ記事