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

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

PHP의 array_diff_uassoc() 함수는 배열의 키와 값을 모두 비교하며, 사용자가 직접 정의한 콜백 함수를 통해 비교 기준을 세밀하게 제어할 수 있는 함수입니다. 첫 번째 배열에는 존재하지만 다른 배열들에는 없는 요소들을 담은 배열을 반환합니다.

문법

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

매개변수

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

  • arr2 − arr1과 비교할 대상 배열입니다. 필수 항목입니다.

  • arr3 − 추가로 비교하고 싶은 배열입니다. 선택 사항입니다.

  • arr4 − 추가로 비교하고 싶은 배열입니다. 선택 사항입니다.

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

반환값

array_diff_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", "monitor");
$arr2 = array("a" => "laptop", "harddisk", "RAM", "monitor");
$res = array_diff_uassoc($arr1, $arr2, "compare_func");
print_r($res);
?>

실행 결과

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

위 예제에서 두 배열 모두 "monitor"라는 값을 가지고 있지만, $arr1에서는 인덱스가 문자열 키가 아닌 숫자형 자동 인덱스(0)로 할당됩니다. 콜백 함수 compare_func가 키를 비교한 결과, "b" => "keyboard", "c" => "mouse", 그리고 0 => "monitor" 항목만 $arr2와 일치하지 않아 결과 배열에 포함되었습니다.