"+" 연산자와 array_merge():array array_merge (array array1, array array2 [, array ...]) 모두 여러 배열을 병합할 수 있지만 사용 과정에 약간의 차이가 있습니다.
array_merge는 참조 매뉴얼에 다음과 같이 설명되어 있습니다.
array_merge()는 두 개 이상의 배열 셀을 병합하고 한 배열의 값을 이전 배열에 추가합니다. 결과 배열을 반환합니다.
입력 배열의 문자열 키 이름이 동일한 경우 키 이름 뒤의 값이 이전 값을 덮어씁니다. 그러나 배열에 숫자 키가 포함된 경우 후속 값은 원래 값을 덮어쓰지 않고 추가됩니다.
둘의 차이점은 다음과 같습니다.
1. 배열 키 이름이 숫자 키 이름이고 병합할 두 배열에 동일한 이름의 숫자 키가 있는 경우 array_merge()를 사용하면 원래 값을 덮어쓰지 않지만 "+"를 사용하여 배열을 병합합니다. 첫 번째 값을 대체합니다. 값은 최종 결과로 반환되며 동일한 키 이름을 가진 후속 배열의 값은 "삭제됩니다"(참고: 덮어쓰지는 않지만 먼저 나타나는 값을 유지합니다). 예:
$array1 = array(1=>'0');
$array2 = 배열(1=> "데이터");
$result1 = $array2 + $array1;/*결과는 $array2의 값입니다*/
print_r($결과);
$result = $array1 + $array2 ;/*결과는 $array1의 값입니다*/
print_r($결과);
$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] => 0
[1] => 데이터
)
2. 동일한 배열 키 이름이 문자인 경우 "+" 연산자는 키 이름이 숫자인 경우와 동일하지만 array_merge()는 동일한 키 이름의 이전 값을 덮어씁니다.
예:
$array1 = 배열('asd'=>'0');
$array2 = array('asd' => "데이터");
$result1 = $array2 + $array1;/*결과는 $array2의 값입니다*/
print_r($결과);
$result = $array1 + $array2 ;/*결과는 $array1의 값입니다*/
print_r($결과);
$result3 = array_merge($array2,$array1);/*결과는 $array1입니다*/
print_r($result3);
$result4 = array_merge($array1,$array2);/*결과는 $array2입니다*/
print_r($result4);
출력 결과는 다음과 같습니다:
Array ([asd] => data)
배열( [asd] => 0 )
배열( [asd] => 0 )
배열( [asd] => 데이터 )