> 백엔드 개발 > PHP 튜토리얼 > 공유 열 값을 기반으로 PHP에서 두 개의 2D 배열을 효율적으로 병합하려면 어떻게 해야 합니까?

공유 열 값을 기반으로 PHP에서 두 개의 2D 배열을 효율적으로 병합하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-11 08:29:11
원래의
404명이 탐색했습니다.

How Can I Efficiently Merge Two 2D Arrays in PHP Based on a Shared Column Value?

공유 열 값으로 2D 배열 병합

두 개의 다차원 배열을 공유 값으로 결합하는 것은 일반적인 프로그래밍 작업일 수 있습니다. 중첩 루프와 조건부 검사를 사용하는 기존의 반복 접근 방식은 안정적이지만 코드가 장황하고 비효율적일 수 있는 경우가 많습니다. 이 기사에서는 기본 PHP 배열 함수를 사용하는 우아한 솔루션을 살펴봅니다.

다음 두 배열을 고려하세요.

$array1 = [
    ['rank' => '579', 'id' => '1'],
    ['rank' => '251', 'id' => '2'],
];

$array2 = [
    ['size' => 'S', 'status' => 'A', 'id' => '1'],
    ['size' => 'L', 'status' => 'A', 'id' => '2'],
];
로그인 후 복사

목표는 공유 'id' 값을 기반으로 이러한 배열을 병합하여 다음 결과:

[
    ['size' => 'S', 'status' => 'A', 'id' => '1', 'rank' => '579'],
    ['size' => 'L', 'status' => 'A', 'id' => '2', 'rank' => '251'],
]
로그인 후 복사

해결책 1: array_merge_recursive

PHP의 array_merge_recursive() 함수를 사용하면 배열을 병합하고 요소를 일치하는 키와 재귀적으로 결합할 수 있습니다.

$mergedArray = array_merge_recursive($array1, $array2);
로그인 후 복사

이 솔루션은 간단하며 별도의 작업 없이 원하는 결과를 생성합니다. 추가 루프 또는 조건.

해결책 2: 사용자 정의 함수

또는 사용자 정의 함수를 생성하여 잠재적으로 더 효율적인 방식으로 병합을 수행할 수 있습니다.

function my_array_merge(array &$array1, array &$array2) {
    $result = [];
    foreach ($array1 as $key => &$value) {
        $result[$key] = array_merge($value, $array2[$key]);
    }
    return $result;
}

$mergedArray = my_array_merge($array1, $array2);
로그인 후 복사

이 함수는 첫 번째 배열을 반복하여 병합합니다. 일치하는 키를 기반으로 각 요소를 두 번째 배열의 해당 요소와 함께 사용합니다.

두 솔루션 모두 2D 배열을 병합하는 효과적인 방법을 제공합니다. 공유 열 값을 기반으로 합니다. 선택한 구체적인 접근 방식은 성능 요구 사항이나 코드 가독성 기본 설정과 같은 요소에 따라 달라질 수 있습니다.

위 내용은 공유 열 값을 기반으로 PHP에서 두 개의 2D 배열을 효율적으로 병합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿