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

PHP array_intersect_ukey() 함수 – 사용자 정의 콜백으로 배열 키 비교하기

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'는 제외됩니다.