>백엔드 개발 >PHP 튜토리얼 >동일한 키로 배열을 병합하고 모든 데이터를 보존하는 방법은 무엇입니까?

동일한 키로 배열을 병합하고 모든 데이터를 보존하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-03 12:15:29663검색

How to Merge Arrays with Identical Keys and Preserve All Data?

동일한 키로 어레이 병합: array_merge의 한계 극복

소프트웨어 개발에서 동일한 키로 어레이를 병합하는 것은 일반적인 작업일 수 있습니다. 그러나 array_merge 함수는 동일한 키를 가진 모든 요소를 ​​결합하지 못하는 경우가 많아 데이터 손실이 발생합니다.

다음 예를 고려하세요.

<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3);
$B = array('c' => 4, 'd' => 5);

array_merge($A, $B);

// Result
 [a] => 1 [b] => 2 [c] => 4 [d] => 5</code>

설명된 대로 'c의 원래 값 ' => 3은 병합 후 손실됩니다. 이 문제를 해결하려면 대체 접근 방식이 필요합니다.

해결책: array_merge_recursive

해결책은 대신 array_merge_recursive 함수를 사용하는 것입니다. array_merge와 달리 array_merge_recursive는 입력 배열의 키와 값을 재귀적으로 병합하여 모든 데이터를 보존합니다.

다음 코드는 이 접근 방식을 보여줍니다.

<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3);
$B = array('c' => 4, 'd' => 5);

array_merge_recursive($A, $B);

// Result
 [a] => 1 [b] => 2 [c] => [0 => 3, 1 => 4] [d] => 5</code>

보시다시피 두 값 모두 'c'는 유지됩니다. 하지만 병합된 배열에는 'c' 키가 하나만 있을 수 있으므로 결과는 배열 내의 배열이 됩니다.

위 내용은 동일한 키로 배열을 병합하고 모든 데이터를 보존하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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