PHP에서 array_diff_ukey () 함수는 두 개 이상의 배열의 키와 다른 배열과 다른 리턴 요소의 키를 비교하는 데 사용됩니다. 이 기능은 특히 사용자 정의 규칙을 통해 배열 키를 비교 해야하는 경우 매우 유용합니다. Array_diff_ukey () 함수를 사용하면 콜백 함수를 지정하여 주요 비교 규칙을 사용자 정의 할 수 있습니다. 이 기사에서는 Array_Diff_ukey () 함수를 올바르게 사용하는 방법을 소개하고 사용자 정의 콜백 기능을 사용하여 키를 비교하는 방법을 보여줍니다.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
Array1 : 비교에 사용되는 첫 번째 배열.
Array2 : 두 번째 배열, 다른 배열도 비교 객체로 전달 될 수 있습니다.
key_compare_func : 키의 비교 규칙을 사용자 정의하기위한 콜백 함수. 이 함수는 두 개의 매개 변수를 사용하고 두 배열의 키를 나타내며 정수 값을 반환합니다.
첫 번째 키가 두 번째 키보다 작 으면 음의 값이 반환됩니다.
첫 번째 키가 두 번째 키보다 크면 양수 값이 반환됩니다.
두 키가 같으면 0을 반환하십시오.
먼저, array_diff_ukey () 함수의 기본 사용법을 이해하려면 간단한 예를 살펴 보겠습니다.
<?php
$array1 = [
1 => 'apple',
2 => 'banana',
3 => 'cherry',
];
$array2 = [
3 => 'cherry',
4 => 'date',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return $key1 - $key2;
});
print_r($result);
?>
출력 결과 :
Array
(
[1] => apple
[2] => banana
)
이 예에서는 Array1 및 Array2 의 키를 비교하고 콜백 함수의 규칙에 따라 필터를 비교합니다. key1 및 key2 는 숫자 키이고 기본 숫자 비교 규칙을 사용하기로 선택하므로 마지막으로 Array2가 아닌 키에 해당하는 요소를 반환합니다.
array_diff_ukey () 함수의 힘은 콜백 함수를 사용자 정의하여 키를 비교하는 방식을 변경할 수 있다는 것입니다. 콜백 함수는 알파벳 순서와 같은 다른 조건에 따라, 숫자 크기 또는 다른 비즈니스 규칙에 따라 비교할 수 있습니다.
두 개의 배열이 있고 알파벳 순서에 따라 키를 비교하고 싶다고 가정합니다.
<?php
$array1 = [
'apple' => 'fruit1',
'banana' => 'fruit2',
'cherry' => 'fruit3',
];
$array2 = [
'cherry' => 'fruit3',
'date' => 'fruit4',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return strcmp($key1, $key2);
});
print_r($result);
?>
출력 결과 :
Array
(
[apple] => fruit1
[banana] => fruit2
)
이 예에서는 strcmp () 함수를 사용하여 배열의 키 ( 'Apple' , 'Banana' 등)를 비교합니다. strcmp () 함수는 문자열을 알파벳순으로 비교하고 리턴 값은 두 키의 순서와 평등을 결정합니다.
키의 길이에 따라 키의 크기를 비교할 수도 있습니다.
<?php
$array1 = [
'a' => 'apple',
'banana' => 'fruit',
'cherry' => 'berry',
];
$array2 = [
'cherry' => 'fruit',
'date' => 'sweet',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return strlen($key1) - strlen($key2);
});
print_r($result);
?>
출력 결과 :
Array
(
[banana] => fruit
)
이 예에서는 strlen () 함수를 사용하여 키의 길이를 비교합니다. 이러한 방식으로, 좀 더 복잡한 사용자 정의 비교 규칙을 구현할 수 있습니다.
Array_diff_ukey () 함수를 통해 배열의 키를 유연하게 비교하고 콜백 함수를 사용하여 자신의 비교 규칙을 정의 할 수 있습니다. 이를 통해 배열 작업은보다 유연하고 강력하며 다양한 복잡한 시나리오를 처리 할 수 있습니다.