PHP에서 array_diff_uassoc ()는 두 개 이상의 배열의 키 값 쌍을 비교하고 사용자 정의 키 값 비교 함수를 기반으로 차이를 찾는 매우 유용한 기능입니다. Array_Diff_Uassoc ()을 사용하면 사용자 정의 비교 함수를 전달하는 것을 잊어 버리면 오류 문제가 발생합니다.
Array_diff_uassoc () 함수는 두 개 이상의 배열의 키 값 쌍을 비교하고 차이가 포함 된 배열을 반환합니다. Array_Diff_Assoc () 와 달리 Array_Diff_Uassoc ()을 사용하면 사용자 정의 비교 함수를 전달하여 키 값을 비교할 수 있습니다. 구문은 다음과 같습니다.
array_diff_uassoc(array $array1, array $array2, callable $value_compare_func): array
Array1 : 첫 번째 배열.
Array2 : 두 번째 어레이 또는 더 많은 배열은 비교에 사용됩니다.
value_compare_func : 어레이에서 키 값 쌍을 비교하는 사용자 정의 비교 함수.
다음은 Array_Diff_Uassoc ()를 사용하여 올바르게 작업하는 방법을 보여주는 간단한 예입니다.
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 3,
'd' => 4
];
// 사용자 정의 비교 기능,값 비교
function compare_values($value1, $value2) {
return $value1 - $value2;
}
$result = array_diff_uassoc($array1, $array2, 'compare_values');
print_r($result);
?>
출력 결과 :
Array
(
[b] => 2
[c] => 3
)
위의 코드에서 Array_diff_uassoc ()는 Compare_Values 함수에 따라 두 배열의 키 값 쌍을 비교하고 Array2 배열과 다른 배열의 키 값 쌍을 반환합니다.
array_diff_uassoc ()을 호출 할 때 사용자 정의 비교 함수를 전달하는 것을 잊어 버리면 PHP가 오류가 발생합니다. array_diff_uassoc () 함수의 세 번째 매개 변수는 배열 요소의 값을 비교하는 콜백 함수입니다. 이 콜백 함수가 전달되지 않으면 PHP는 키 값 비교를 수행 할 수 없으며 오류가 자연스럽게 발생합니다.
Error example:
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 3,
'd' => 4
];
// 忘记传入사용자 정의 비교 기능
$result = array_diff_uassoc($array1, $array2);
print_r($result);
?>
출력 오류 :
Warning: array_diff_uassoc() expects parameter 3 to be a valid callback in /path/to/script.php on line X
위에서 볼 수 있듯이 PHP는 세 번째 매개 변수 (사용자 정의 비교 함수)가 유효한 콜백 기능이어야한다는 경고를 던집니다. 이 매개 변수를 통과하지 않으면 PHP는 배열 비교를 계속 수행 할 수 없으므로 프로그램이 중단되고 오류가 발생합니다.
이 문제에 대한 해결책은 매우 간단합니다. array_diff_uassoc ()를 호출 할 때 유효한 사용자 정의 비교 함수가 항상 제공되는지 확인하십시오. 예를 들어, 이전 예에서는 Compare_Values 함수를 세 번째 매개 변수로 사용합니다.
$result = array_diff_uassoc($array1, $array2, 'compare_values');
array_diff_uassoc ()가 호출 될 때마다 유효한 콜백 함수를 전달하여 오류가 발생하지 않도록하십시오.
Array_Diff_Uassoc () 는 사용자 정의 규칙을 기반으로 배열 키 값 쌍 간의 차이를 비교할 수있는 강력한 PHP 기능입니다. 그러나 사용자 정의 비교 함수를 전달하는 것을 잊어 버리면 오류가 발생합니다. 따라서이 오류를 피하기 위해 항상 유효한 콜백 기능을 제공하십시오.