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

PHP array_udiff() 함수 완벽 가이드 – 사용자 정의 함수로 배열 차이 비교하기

PHP의 array_udiff() 함수는 사용자가 직접 정의한 비교 함수를 기준으로 배열 값들을 비교하는 함수입니다. 첫 번째 배열의 값 중에서 나머지 배열들에는 존재하지 않는 값만 골라내어 새로운 배열로 반환합니다.

구문

array_udiff(arr1, arr2, arr3, … , compare_func)

매개변수

  • arr1 − 비교의 기준이 되는 첫 번째 배열입니다.

  • arr2 − 첫 번째 배열과 비교할 두 번째 배열입니다.

  • arr3 − 추가로 비교하고 싶은 더 많은 배열들을 지정할 수 있습니다.

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

반환값

array_udiff() 함수는 첫 번째 배열의 값 중에서 다른 배열들에는 없는 값들만 담고 있는 배열을 반환합니다. 반환되는 배열은 원래 배열의 키(key)를 그대로 유지한다는 점도 참고하시기 바랍니다.

예제

다음은 array_udiff() 함수를 활용한 예제 코드입니다.

<?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("a" => "laptop", "d" => "mouse");
$res = array_udiff($arr1, $arr2, "compare_func");
print_r($res);
?>

실행 결과

Array (
   [b] => keyboard
)

위 예제에서 $arr1에는 'laptop', 'keyboard', 'mouse' 세 개의 값이 있지만, $arr2에 'laptop'과 'mouse'가 이미 존재하므로 최종 결과에는 'keyboard'만 남게 됩니다. 이처럼 array_udiff()는 표준 비교 방식 대신 개발자가 원하는 커스텀 비교 로직을 적용해야 할 때 특히 유용하게 사용됩니다.