현재 위치: > 최신 기사 목록> 사용자 정의 콜백 함수와 함께 array_diff_ukey ()를 사용하는 올바른 방법

사용자 정의 콜백 함수와 함께 array_diff_ukey ()를 사용하는 올바른 방법

M66 2025-05-15

PHP에서 array_diff_ukey () 함수는 두 개 이상의 배열의 키와 다른 배열과 다른 리턴 요소의 키를 비교하는 데 사용됩니다. 이 기능은 특히 사용자 정의 규칙을 통해 배열 키를 비교 해야하는 경우 매우 유용합니다. 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
)

이 예에서는 Array1Array2 의 키를 비교하고 콜백 함수의 규칙에 따라 필터를 비교합니다. key1key2 는 숫자 키이고 기본 숫자 비교 규칙을 사용하기로 선택하므로 마지막으로 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 () 함수를 통해 배열의 키를 유연하게 비교하고 콜백 함수를 사용하여 자신의 비교 규칙을 정의 할 수 있습니다. 이를 통해 배열 작업은보다 유연하고 강력하며 다양한 복잡한 시나리오를 처리 할 수 ​​있습니다.