현재 위치: > 최신 기사 목록> 사용자 정의 콜백 함수를 사용하여 키 이름을 비교하는 방법

사용자 정의 콜백 함수를 사용하여 키 이름을 비교하는 방법

M66 2025-05-15

PHP에서는 배열의 주요 이름을 비교하고 차이점을 찾는 것이 일반적인 작업입니다. 내장 된 Array_Diff_Key () 함수를 사용하여 두 배열 간의 키 이름 차이를 비교하지만 키 이름의 비교 로직을보다 자세히 제어하려면 사용자 정의 콜백 함수를 통해 수행 할 수 있습니다. 이 방법은 매우 유연하며 특정 요구에 따라 사용자 정의 할 수 있습니다.

다음으로 배열 키 이름을 비교하고 사용자 정의 콜백 함수를 통해 차이점을 찾는 방법을 보여줍니다.

구현 단계

  1. 사용자 정의 콜백 함수 정의 : 먼저 배열의 키 이름을 비교하는 콜백 함수를 정의해야합니다.

  2. Array_Filter () 함수 사용 : Array_Filter ()를 사용하여 배열을 필터링하여 기준을 충족하는 키 이름 만 유지되도록 할 수 있습니다.

  3. 비교를 위해 Array_Diff_Key ()를 사용하십시오 . 요구 사항에 따라 배열의 주요 이름을 차별적으로 비교할 수 있습니다.

다음은 배열 키 이름을 비교하고 사용자 정의 콜백 함수를 통해 차이점을 찾는 방법을 보여주는 완전한 예입니다.

샘플 코드

 <?php

// 예제 배열1
$array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3,
    "d" => 4
];

// 예제 배열2
$array2 = [
    "a" => 1,
    "b" => 2,
    "e" => 5,
    "f" => 6
];

// 사용자 정의 콜백 함수:키 이름이 동일한 지 비교하십시오
function customKeyCompare($key1, $key2) {
    // 여기에 자신의 비교 로직을 추가 할 수 있습니다
    // 예를 들어,간단한 사례 감지 비교는 다음과 같습니다
    return strtolower($key1) === strtolower($key2);
}

// 사용자 정의 기능:두 배열의 주요 이름을 비교하고 차이를 찾으십시오.
function compareArrayKeys($array1, $array2, $callback) {
    // 배열의 키 이름을 얻으십시오
    $keys1 = array_keys($array1);
    $keys2 = array_keys($array2);

    // 두 배열로 키 이름을 필터링하십시오,다른 키 이름을 반환합니다
    $diffKeys = array_filter($keys1, function($key) use ($keys2, $callback) {
        foreach ($keys2 as $key2) {
            if ($callback($key, $key2)) {
                return false; // 키 이름이 동일하다면 건너 뜁니다
            }
        }
        return true; // 그렇지 않으면,차이 키 이름을 반환합니다
    });

    return $diffKeys;
}

// 배열 키 이름 차이를 얻습니다
$diffKeys = compareArrayKeys($array1, $array2, "customKeyCompare");

// 차이 키 이름을 인쇄하십시오
echo "차이 키 이름:\n";
print_r($diffKeys);

?>

코드 구문 분석

  • 두 개의 키 이름이 동일한지 비교하는 간단한 사용자 정의 콜백 함수 CustomKeyCompare () 를 정의합니다. 필요에 따라 콜백 함수의 비교 로직을 수정할 수 있습니다. 예를 들어, 위의 코드의 비교는 사례를 무시합니다.

  • CompareArraykeys () 함수는 두 배열의 키 이름을 비교하고 첫 번째 배열에는 존재하지만 두 번째 배열에는없는 키 이름을 반환하는 데 사용됩니다.

  • 마지막으로, array1 의 키 이름은 array_filter () 를 통해 가로 지르고 Array2 의 키 이름을 하나씩 비교하고 차이의 키 이름을 반환합니다.

출력 예제

 차이 키 이름:
Array
(
    [2] => c
    [3] => d
)

이 예에서 CD는 첫 번째 배열 배열이 아닌 첫 번째 배열 Array1 에 존재하는 주요 이름입니다.

요약

사용자 정의 콜백 함수를 통해 두 배열의 주요 이름을보다 유연하게 비교하고 특정 요구에 따라 키 이름의 비교 로직을 처리 할 수 ​​있습니다. 이 접근법은 특히 내장 기능이 특정 요구를 충족시킬 수없는 상황에 적합합니다.

이 방법은 다양한 유형의 배열 키 이름을 비교 해야하는 경우 매우 실용적인 트릭입니다.