>  기사  >  백엔드 개발  >  + 연산자를 사용한 PHP 병합 배열과 배열 함수 array_merge의 차이점에 대한 자세한 예

+ 연산자를 사용한 PHP 병합 배열과 배열 함수 array_merge의 차이점에 대한 자세한 예

伊谢尔伦
伊谢尔伦원래의
2017-06-21 09:52:531484검색

PHP 병합 arrays 일반적으로 두 가지 방법이 있습니다. 하나는 더하기 기호를 직접 사용하여 추가하는 것이고, 다른 하나는 array_mergefunction을 사용하여 추가하는 것입니다. array_merge()는 두 개 이상의 배열 단위를 결합합니다. , 한 배열의 값이 이전 배열에 추가됩니다. 결과 배열을 반환합니다. 입력 배열에 동일한 string키 이름이 있는 경우 키 이름 뒤의 값이 이전 값을 덮어씁니다. 그러나 배열에 숫자 키가 포함된 경우 후속 값은 원래 값을 덮어쓰지 않고 추가됩니다.

둘 사이에는 약간의 차이가 있습니다.

배열 키 이름이 숫자 키 이름이고 병합할 두 배열에 동일한 이름의 숫자 키가 있는 경우 array_merge()를 사용하면 덮어쓰지 않습니다. 원래 값입니다. 배열을 병합하기 위해 "+"를 사용하면 처음 나타나는 값이 최종 결과로 반환되고 후속 배열에서 동일한 키 이름을 가진 해당 값을 "삭제"합니다(참고: 첫 번째 값을 덮어쓰지는 않지만 유지함). 값이 나타납니다. 동일한 배열 키 이름이 문자인 경우 "+" 연산자 는 키 이름이 숫자인 경우와 동일하지만 array_merge()는 동일한 키 이름의 이전 값을 덮어씁니다.

예:

<?php
$array1 = array(1=>&#39;0&#39;); 
$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); 
?>

출력 결과:

Array 
( 
[1] => data 
) 
Array 
( 
[1] => 0 
) 
Array 
( 
[0] => data 
[1] => 0 
) 
Array 
( 
[0] => 0 
[1] => data 
)

코드:

<?php
$array1 = array(&#39;asd&#39;=>&#39;0&#39;); 
$array2 = array(&#39;asd&#39; => "data"); 
$result1 = $array2 + $array1;/*结果为$array2的值*/ 
print_r($result); 
$result = $array1 + $array2 ;/*结果为$array1的值*/ 
print_r($result); 
$result3 = array_merge($array2,$array1);/*结果为$array1*/ 
print_r($result3); 
$result4 = array_merge($array1,$array2);/*结果为$array2*/ 
print_r($result4);
?>

출력 결과:

Array 
( 
[asd] => data 
) 
Array 
( 
[asd] => 0 
) 
Array 
( 
[asd] => 0 
) 
Array 
( 
[asd] => data 
)

1 덧셈 방식, 값이 재설정되지 않습니다.
3. 병합 함수의 자연 인덱스는 재설정됩니다.
4. 병합 함수는 병합과 병합의 관계에 관계없이 끝에 있는 배열 매개변수의 값을 덮어쓰게 됩니다. 이전 배열 매개변수와 동일한 키 값

위 내용은 + 연산자를 사용한 PHP 병합 배열과 배열 함수 array_merge의 차이점에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.