PHP에서 두 개의 배열을 병합하면서 각 요소의 원래 키를 그대로 유지하고 싶다면 배열 합집합 연산자(+)를 사용하면 됩니다.
흔히 사용되는 array_merge() 함수와 달리, + 연산자는 키가 중복될 경우 왼쪽(앞쪽) 배열의 값을 우선하여 유지하고 숫자 인덱스도 재정렬하지 않습니다. 따라서 원본 키 구조를 반드시 보존해야 하는 상황에서 매우 유용합니다.
예제 1: 두 배열 병합하기
<?php
$arr1 = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110");
$arr2 = array("t"=>"115", "u"=>"103", "v"=>"105", "w"=>"125" );
var_dump ($arr1 + $arr2);
?>
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
출력 결과
array(8) {
["p"]=> string(3) "150"
["q"]=> string(3) "100"
["r"]=> string(3) "120"
["s"]=> string(3) "110"
["t"]=> string(3) "115"
["u"]=> string(3) "103"
["v"]=> string(3) "105"
["w"]=> string(3) "125"
}출력 결과를 보면 첫 번째 배열 $arr1의 네 개 요소와 두 번째 배열 $arr2의 네 개 요소가 모두 원래 키("p", "q", "r", "s", "t", "u", "v", "w")를 그대로 유지한 채 하나의 배열로 합쳐진 것을 확인할 수 있습니다.
예제 2: 빈 배열과 병합하기
이번에는 빈 배열과 다른 배열을 병합하는 또 다른 예제를 살펴보겠습니다.
<?php
$arr1 = array();
$arr2 = array("a" => "Jacob");
var_dump ($arr1 + $arr2);
?>
출력 결과
array(1) {
["a"]=>
string(5) "Jacob"
}빈 배열에 + 연산자로 다른 배열을 더하면 해당 배열이 그대로 반환됩니다. 이 경우에도 키 "a"와 값 "Jacob"은 어떠한 변경 없이 그대로 유지되어 출력되는 것을 볼 수 있습니다.