php에서 array_diff_ukey ()는 두 배열의 키 이름 차이를 비교하는 데 사용할 수있는 매우 유용한 기능입니다. Array_diff () 함수와 달리 Array의 값 만 비교하면 Array_diff_ukey ()를 사용하면 사용자 정의 비교 함수를 통해 배열의 키를 비교할 수 있습니다. 이 기능은 다차원 배열이 처리되거나 복잡한 규칙에 따라 주요 이름을 비교 해야하는 시나리오에 매우 적합합니다.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ array1 : 첫 번째 배열.
$ array2 : 두 번째 배열.
$ key_compare_func : 두 키를 비교하는 콜백 함수. 반환 값이 0보다 작은 경우 $ array1 의 키가 $ array2 의 키보다 작음을 의미합니다. 반환 값이 0보다 큰 경우 $ array1 의 키가 $ array2 의 키보다 크다는 것을 의미합니다. 리턴 값이 0 인 경우 두 키가 동일하다는 것을 의미합니다.
$ array1 에서 요소의 키 이름과 값을 포함하는 배열을 반환하지만 $ array2 는 아닙니다.
다음은 Array_diff_ukey ()를 사용하여 두 배열 간의 키 이름 차이를 비교하는 간단한 예입니다.
<?php
// 첫 번째 배열
$array1 = [
'apple' => 100,
'banana' => 200,
'orange' => 300,
];
// 두 번째 배열
$array2 = [
'banana' => 200,
'grape' => 400,
'kiwi' => 500,
];
// 사용자 정의 키 비교 함수
function compare_keys($key1, $key2) {
return strcmp($key1, $key2); // 문자열을 사용하여 키 이름을 비교하십시오
}
// 사용 array_diff_ukey 두 배열의 키 이름의 차이 비교
$result = array_diff_ukey($array1, $array2, 'compare_keys');
// 인쇄 결과
print_r($result);
?>
Array
(
[apple] => 100
[orange] => 300
)
위의 예에서는 array_diff_ukey () 함수는 두 배열 $ array1 및 $ array2 의 키 이름을 비교합니다. 이 예에서 $ array1 의 'Apple' 및 'Orange' 키는 $ array2 에 존재하지 않으므로 반환 된 결과에 유지됩니다. '바나나' 키는 두 배열 모두에 포함되어 있으므로 제외됩니다.
Array_diff_ukey () 는 다음 시나리오에 매우 적합합니다.
키 이름의 사용자 정의 비교 : array_diff_ukey ()는 사용자 정의 규칙 (예 : 케이스, 문자 순서 등)을 기준으로 배열의 키를 비교해야 할 때 강력한 기능을 제공합니다.
다차원 배열 처리 : 배열이 다차원이고 값을 돌보지 않고 키 이름 만 비교하면 array_diff_ukey ()를 사용하여 처리 할 수 있습니다.
두 개의 URL 어레이의 키를 비교해야한다고 가정하고 URL의 기본 도메인 부분을 비교하려고합니다. parse_url () 함수를 통해 URL의 기본 도메인 이름을 추출한 다음 사용자 정의 비교 함수를 사용하여 비교할 수 있습니다.