Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP array_intersect_uassoc() 함수 사용법 – 키와 값을 동시에 비교하기

PHP의 array_intersect_uassoc() 함수는 배열의 키와 값을 모두 비교하되, 사용자가 직접 정의한 콜백 함수를 통해 비교 기준을 지정할 수 있는 함수입니다. 첫 번째 배열을 기준으로 다른 배열들과 키·값이 모두 일치하는 요소만 골라내어 새로운 배열로 반환합니다.

문법

array_intersect_uassoc(arr1, arr2, arr3, arr4, …, compare_func)

매개변수

  • arr1 − 비교의 기준이 되는 배열입니다. 필수 항목입니다.

  • arr2 − 기준 배열과 비교할 배열입니다. 필수 항목입니다.

  • arr3 − 추가로 비교할 배열입니다. 선택 사항입니다.

  • arr4 − 추가로 비교할 배열입니다. 선택 사항입니다.

  • compare_func − 키를 비교하는 데 사용되는 콜백 함수입니다. 이 함수는 첫 번째 인수가 두 번째 인수보다 작으면 0보다 작은 값, 같으면 0, 크면 0보다 큰 정수를 반환해야 합니다.

반환값

array_intersect_uassoc() 함수는 첫 번째 배열의 요소 중에서 키와 값이 모두 나머지 배열들에도 존재하는 항목만 담은 배열을 반환합니다. 키 또는 값 중 하나라도 일치하지 않으면 해당 요소는 결과에서 제외됩니다.

예제

<?php
function compare_func($a, $b) {
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}
$arr1 = array("a" => "laptop", "b" => "keyboard", "c" => "mouse");
$arr2 = array("d" => "laptop", "b" => "keyboard", "c" => "mouse");
$res = array_intersect_uassoc($arr1, $arr2, "compare_func");
print_r($res);
?>

실행 결과

Array ( [b] => keyboard [c] => mouse )

위 예제에서 "laptop"이라는 값은 두 배열 모두에 존재하지만, 키가 각각 "a"와 "d"로 서로 다르기 때문에 결과에서 제외됩니다. 반면 키와 값이 모두 동일한 "keyboard"와 "mouse"만 최종 결과 배열에 포함되는 것을 확인할 수 있습니다.