php 배열 연산에서 + 와 array_merge 의 차이
php 에서 2개 의 배열을 합칠 때 + 또는 array_merge
함수를 사용한다. 이 두 가지 연산은 결과에서 차이가 존재한다. 아래의 샘플 코드로 차이를 확인할 수 있다.
<?php
$a = ['url' => 'https://example.com/a', 'postfields' => ['a' => 1, 'b' => 2]];
$b = ['url' => 'https://example.com/b', 'postfields' => ['a' => 3, 'b' => 4], 'args' => 'args'];
$c = $a + $b;
$d = array_merge($a, $b);
print_r($c);
print_r($d);
?>
위 코드를 실행했을 때의 결과는 아래와 같다.
Array
(
[url] => https://example.com/a
[postfields] => Array
(
[a] => 1
[b] => 2
)
[args] => args
)
Array
(
[url] => https://example.com/b
[postfields] => Array
(
[a] => 3
[b] => 4
)
[args] => args
)
+ 를 사용하는 경우는 $a
배열의 기존 값은 그대로 보존대고 없는 값이 추가되는 반면 array_merge
에서는 $a
값이 $b
값을 덮어쓰여진다. 위 샘플 코드에서 + 와 동일하게 하려면 array_merge($b, $a);
처럼 할 수는 있다.