PHP의 array_intersect_ukey() 함수는 여러 배열의 키(key)를 비교하되, 사용자가 직접 정의한 콜백 함수를 통해 비교 기준을 지정할 수 있는 함수입니다. 이 함수는 첫 번째 배열에 포함된 항목 중에서 다른 모든 배열에 동일한 키가 존재하는 요소들만 모아 새로운 배열로 반환합니다.
일반적인 array_intersect_key()와 달리, 콜백 함수를 활용하므로 대소문자 구분이나 특정 규칙에 따른 키 비교 등 유연한 처리가 가능하다는 점이 특징입니다.
문법(Syntax)
array_intersect_ukey(arr1, arr2, arr3, arr4, ..., compare_func)
매개변수(Parameters)
arr1 − 비교의 기준이 되는 배열입니다. 필수 입력 항목입니다.
arr2 − arr1과 비교할 배열입니다. 필수 입력 항목입니다.
arr3 − 추가로 비교하고 싶은 배열입니다. 선택 사항입니다.
arr4 − 추가로 비교하고 싶은 배열입니다. 선택 사항입니다.
compare_func − 키를 비교하는 데 사용되는 콜백 함수입니다. 이 함수는 첫 번째 인자가 두 번째 인자보다 작으면 0보다 작은 값, 같으면 0, 크면 0보다 큰 정수를 반드시 반환해야 합니다.
반환값(Return)
array_intersect_ukey() 함수는 첫 번째 배열의 항목 중에서 다른 모든 배열에 동일한 키가 존재하는 요소들만 담고 있는 배열을 반환합니다.
예제(Example)
다음 예제는 두 배열의 키를 사용자 정의 함수로 비교하는 코드입니다.
<?php
function check($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$arr1 = array("a"=>"one","b"=>"two","c"=>"three");
$arr2 = array("a"=>"one","b"=>"two");
$result = array_intersect_ukey($arr1,$arr2,"check");
print_r($result);
?>실행 결과(Output)
Array ( [a] => one [b] => two )
위 실행 결과에서 확인할 수 있듯이, $arr1에는 'a', 'b', 'c' 세 개의 키가 있지만 $arr2에는 'a'와 'b'만 존재합니다. 따라서 공통으로 존재하는 키인 'a'와 'b'에 해당하는 값만 결과 배열에 포함되며, 'c'는 제외됩니다.