Array_diff_uassoc 는 PHP에서 두 배열을 비교하는 데 사용되는 함수입니다. 배열의 값을 비교할뿐만 아니라 배열의 키를 비교합니다. 경우에 따라 비교할 때 사용자 정의 비교 함수를 사용할 수 있습니다. 이 사용자 정의 비교 함수는 배열 값과 키를 비교할 때 종종 추가 로직을 추가 할 수 있습니다. 그러나 비교 함수에서 외부 변수를 사용해야하는 경우 (예 : 전역 변수 또는 함수에 전달되는 매개 변수) 사용자 정의 기능에서 이러한 외부 변수를 올바르게 참조하는 방법에 특별한주의를 기울여야합니다.
이 기사는 Array_Diff_Uassoc을 사용할 때 사용자 정의 비교 함수에서 외부 변수를 올바르게 사용하는 방법을 설명합니다.
Array_Diff_Uassoc 는 PHP가 여러 배열을 매개 변수로 가져 와서 첫 번째 배열에서는 요소를 포함하는 새로운 배열을 반환하는 배열 함수입니다. Array_diff_assoc 과 유사하지만 키를 어레이와 비교할 수있는 사용자 정의 비교 함수를 제공 할 수 있습니다.
기능 프로토 타입은 다음과 같습니다.
array array_diff_uassoc ( array $array1 , array $array2 , array ...$arrays , callable $key_compare_func )
$ array1은 비교에 사용되는 첫 번째 배열입니다.
$ array2, ... $ 배열은 비교를 위해 하나 이상의 배열입니다.
$ key_compare_func는 배열 키를 비교하는 데 사용되는 사용자 정의 콜백 함수입니다.
사용자 정의 비교 함수를 작성할 때 때때로 외부 변수 (예 : 일부 전역 설정 또는 기능 외부의 매개 변수)를 사용해야합니다. 그러나 PHP에서 익명 함수 (클로저)는 이러한 변수를 함수에 명시 적으로 전달하지 않는 한 외부 스코핑 변수에 직접 액세스 할 수 없습니다.
$ array1 및 $ array2의 두 배열이 있다고 가정 해보자이 두 배열의 키를 비교하고 비교 중에 외부 정의 된 변수 (예 : 세트 임계 값)를 사용하려고합니다. 우리는 그것을 수행하는 방법을 보여주기 위해 예제를 사용합니다.
<?php
// 외부 변수:임계 값
$threshold = 5;
// 사용자 정의 비교 기능
function compare_keys($a, $b) {
global $threshold; // 외부 글로벌 변수를 참조하십시오 $threshold
// 두 키가 같으면,반품 0
if ($a === $b) {
return 0;
}
// 외부 임계 값을 사용한 비교
return abs($a - $threshold) < abs($b - $threshold) ? -1 : 1;
}
// 두 배열의 비교
$array1 = [3 => 'apple', 7 => 'banana', 10 => 'cherry'];
$array2 = [2 => 'pear', 7 => 'grape', 9 => 'orange'];
// 사용 array_diff_uassoc 사용자 정의 비교 함수를 전달합니다
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
print_r($result);
?>
글로벌 변수 $ 임계 값 : 키를 비교할 때 "참조"값을 설정하기 위해 외부 $ 임계 값 변수를 정의합니다.
사용자 정의 비교 함수 compare_keys :이 함수는 두 개의 매개 변수 $ a 와 $ b를 허용하며 두 키를 비교합니다. Global $ 임계 값을 사용 하여이 기능이 외부 $ 임계 값 변수에 액세스 할 수 있도록합니다. 이 기능에서는 키와 $ 임계 값 사이의 거리를 계산하고 비교 결과를 반환합니다.
Array_diff_uassoc 사용 : Array_Diff_Uassoc 호출 할 때 배열 $ array1 및 $ array2를 매개 변수로 전달하고 사용자 정의 비교 함수 Compare_Keys를 전달합니다. 이 기능은 배열 키를 비교할 때 자동으로 호출됩니다.
출력 결과 : print_r을 통해 결과를 인쇄하면 $ array1 이지만 $ array2 에 어떤 요소가 있는지 확인할 수 있으며 맞춤형 비교 규칙을 기반으로합니다.
php의 array_diff_uassoc을 사용하는 경우 사용자 정의 비교 함수에서 외부 변수를 사용해야하는 경우 다음 방법으로 구현할 수 있습니다.
글로벌 키워드를 사용하여 글로벌 변수를 참조하십시오.
외부 변수를 매개 변수로 사용자 정의 비교 함수로 전달합니다 (예 : 사용 키워드를 사용하여 익명 함수에 외부 변수를 도입).
비교 함수의 반환 값이 Array_diff_uassoc 의 요구 사항을 충족하고 주요 비교 로직을 올바르게 처리하십시오.
이 예제가 Array_Diff_Uassoc 에서 외부 변수를 올바르게 사용하는 방법을 이해하고 실제 개발에 편리한 방법을 이해하는 데 도움이되기를 바랍니다.