PHP에서 두 연관 배열의 서로 다른 부분을 얻는 방법

PHPz
풀어 주다: 2023-03-23 15:46:01
원래의
1312명이 탐색했습니다.

PHP 개발에서 우리는 두 개의 연관 배열을 비교하고 서로 다른 부분을 얻어야 하는 경우가 종종 있습니다. 아래에서는 이 기능을 구현하는 몇 가지 방법을 소개합니다.

방법 1: array_diff_assoc() 함수 사용

array_diff_assoc() 함수는 두 연관 배열의 키-값 쌍을 비교하고 첫 번째 배열의 모든 요소를 ​​반환하지만 다른 배열은 반환하지 않고 키를 유지하는 데 사용할 수 있습니다. 이름과 키 값.

코드 예:

$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_diff_assoc($array1, $array2);  
print_r($result);
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [name] => 张三
    [salary] => 3000
)
로그인 후 복사
로그인 후 복사
로그인 후 복사

보시다시피 결과 배열에는 배열 1에 키 이름이 "name" 및 "salary"인 키-값 쌍만 포함되어 있습니다. 배열 2 에 나타납니다.

방법 2: 사용자 정의 함수 사용

또 다른 구현 방법은 두 배열을 반복하고 키-값 쌍을 비교하여 결과 배열에 다른 부분을 추가하도록 함수를 사용자 정의하는 것입니다.

코드 예:

function array_diff_custom($array1, $array2) {  
    $result = array();  
    foreach ($array1 as $key => $value) {  
        if (!array_key_exists($key, $array2) || ($array2[$key] != $value)) {  
            $result[$key] = $value;  
        }  
    }  
    return $result;  
}  
$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_diff_custom($array1, $array2);  
print_r($result);
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [name] => 张三
    [salary] => 3000
)
로그인 후 복사
로그인 후 복사
로그인 후 복사

마찬가지로 결과 배열에는 배열 1에 키 이름이 "name" 및 "salary"인 키-값 쌍만 포함됩니다.

방법 3: array_udiff_assoc() 함수 사용

array_udiff_assoc() 함수는 array_diff_assoc() 함수와 유사하지만 사용자 정의 콜백 함수를 사용하여 키-값 쌍을 비교할 수 있습니다.

코드 예:

function compareByKeyValue($a, $b) {  
    if ($a === $b) {  
        return 0;  
    }  
    return ($a > $b) ? 1 : -1;  
}  
$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_udiff_assoc($array1, $array2, "compareByKeyValue");  
print_r($result);
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [name] => 张三
    [salary] => 3000
)
로그인 후 복사
로그인 후 복사
로그인 후 복사

키-값 쌍이 동일한지 비교하는 콜백 함수 CompareByKeyValue()를 정의합니다. 이 함수의 이름을 array_udiff_assoc() 함수의 세 번째 인수로 전달하면 array_diff_assoc() 함수와 비슷한 효과를 얻을 수 있습니다.

요약

이 기사에서는 PHP에서 두 연관 배열의 서로 다른 부분을 얻는 세 가지 방법을 소개합니다: array_diff_assoc() 함수, 사용자 정의 함수 및 array_udiff_assoc() 함수를 사용합니다. 선택하는 방법은 특정 요구 사항과 개인 습관에 따라 다릅니다. 어느 쪽이든 연관 배열로 작업할 때 효율성과 정확성을 향상시킬 수 있습니다.

위 내용은 PHP에서 두 연관 배열의 서로 다른 부분을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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