>백엔드 개발 >PHP 튜토리얼 >두 값을 모두 유지하면서 PHP에서 일치하는 키로 배열을 병합하는 방법은 무엇입니까?

두 값을 모두 유지하면서 PHP에서 일치하는 키로 배열을 병합하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-28 18:43:29912검색

How to Merge Arrays with Matching Keys in PHP While Keeping Both Values?

PHP에서 일치하는 키로 배열 병합

PHP에서 배열로 작업할 때 여러 배열을 함께 병합해야 하는 경우가 많습니다. 그러나 어레이가 일치하는 키를 공유하는 경우 병합 프로세스를 신중하게 처리하는 것이 중요해집니다.

초기 접근 방식

제공된 정보에서 언급한 대로 병합을 시도했습니다. array_merge()를 사용하여 두 개의 배열. 이 함수는 두 배열의 값을 결합하여 얕은 병합을 수행합니다. 그러나 이 경우 배열의 키가 겹치므로 첫 번째 배열의 값이 두 번째 배열의 값으로 덮어쓰여집니다.

array_map()을 사용한 대체 솔루션

키가 겹치는 문제를 해결하려면 array_map()을 활용할 수 있습니다. 이 함수는 지정된 배열의 각 요소에 사용자 정의 콜백 함수를 적용하고 수정된 값을 기반으로 새 배열을 반환합니다.

제공된 솔루션에서:

  1. 배열 준비:

    • $array1 및 $array2 배열은 지정된 데이터로 준비됩니다.
  2. 콜백 함수 정의:

    • 익명 콜백 함수는 function()을 사용하여 정의됩니다. 각각 $array1 및 $array2의 요소를 나타내는 두 개의 매개변수 $a 및 $b를 허용합니다.
  3. 키 추출 및 값 수정:

    • 콜백 내부에서 current(array_keys($a))를 사용하여 키($key)를 얻습니다.
    • $a의 값은 'ip'를 포함하도록 수정됩니다. 원래 값을 포함하는 키입니다.
  4. 두 번째 배열 처리:

    • 두 번째 배열($b)이 처리됩니다. 마찬가지로 해당 키($key)를 얻고 '이름' 키를 포함하도록 값을 수정합니다.
  5. 배열 병합:

    • 수정된 배열($a 및 $b)은 array_merge_recursive()를 사용하여 병합되며, 이는 배열을 재귀적으로 병합하는 심층 병합을 수행합니다.
  6. 결과 저장:

    • 병합된 결과는 = 연산자를 사용하여 $results에 저장됩니다.

출력

이 솔루션의 출력은 키(Camera1, Camera2, Camera3)가 병합된 배열이며, 값은 'ip' 및 'name' 키 아래에 결합되어 구조화된 결과를 제공합니다.

위 내용은 두 값을 모두 유지하면서 PHP에서 일치하는 키로 배열을 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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