중복 값을 제거하면서 여러 PHP 배열을 병합하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-11-13 00:16:01
원래의
672명이 탐색했습니다.

How can I merge multiple PHP arrays while removing duplicate values?

PHP에서 배열 병합 및 중복 제거

PHP 배열로 작업할 때 여러 배열을 단일 배열로 병합해야 하는 경우가 많습니다. 그러나 최종 배열에서 중복된 값을 피하는 것이 중요합니다.

두 배열 병합

두 배열을 병합하려면 array_merge() 함수를 사용할 수 있습니다.

$array1 = [
    (object) [
        'ID' => 749,
        'post_author' => 1,
        'post_date' => '2012-11-20 06:26:07',
        'post_date_gmt' => '2012-11-20 06:26:07'
    ]
];

$array2 = [
    (object) [
        'ID' => 749,
        'post_author' => 1,
        'post_date' => '2012-11-20 06:26:07',
        'post_date_gmt' => '2012-11-20 06:26:07'
    ]
];

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

$mergedArray에는 $array1과 $array2의 두 요소가 모두 포함됩니다. 그러나 $array2의 중복 개체도 포함되므로 바람직하지 않을 수 있습니다.

중복 항목 제거

중복 항목을 제거하려면 array_unique()를 사용할 수 있습니다. 기능. 이 함수는 배열을 인수로 사용하고 중복 값이 ​​제거된 새 배열을 반환합니다. array_merge()와 array_unique()를 결합하여 배열을 병합하고 중복 항목을 제거할 수 있습니다.

$mergedAndUniquedArray = 
array_unique(array_merge($array1, $array2), SORT_REGULAR);
로그인 후 복사

SORT_REGULAR 플래그는 중복 항목을 제거하기 전에 배열이 해당 요소의 값을 기준으로 정렬되도록 합니다. 이는 병합할 때 원래 배열의 순서를 유지하려는 경우 중요할 수 있습니다.

또한 array_map()과 spl_object_hash()의 조합을 사용하여 배열에서 중복 개체를 제거할 수도 있습니다.

$removeDuplicatesUsingObjects = function ($object) {
    return spl_object_hash($object);
};

$mergedAndUniquedArray = array_map($removeDuplicatesUsingObjects, 
array_merge($array1, $array2));
$mergedAndUniquedArray = array_unique($mergedAndUniquedArray);
로그인 후 복사

이 방법은 spl_object_hash() 함수를 사용하여 각 개체에 대한 고유 식별자를 생성한 다음 이러한 식별자를 기반으로 중복을 제거합니다.

위 내용은 중복 값을 제거하면서 여러 PHP 배열을 병합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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