현재 위치: > 최신 기사 목록> Array_diff_ukey ()를 사용하여 다차원 배열의 최상위 키를 비교하십시오

Array_diff_ukey ()를 사용하여 다차원 배열의 최상위 키를 비교하십시오

M66 2025-05-14

매일 PHP 개발에서 우리는 종종 배열의 차이점을 비교 해야하는 상황을 발생시킵니다. 다차원 배열의 경우, array_diff_ukey ()는 최상위 키 (1 단계 키)의 차이에 대해서만 관심을 갖고 해당 값을 비교하지 않으면 매우 실용적인 도구입니다.

이 기사에서는 Array_diff_ukey ()를 사용하여 두 개의 다차원 배열의 최상위 키를 비교하고 다른 부분을 찾는 방법을 설명합니다.

1. 기능 소개

array_diff_ukey ()는 키 이름이 복제되지 않은 두 개 이상의 배열에서 파트를 찾기 위해 사용자가 제공 한 콜백 함수를 기반으로 키 이름을 비교하는 데 사용됩니다.

문법:

 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 : 비교할 배열.

  • $ array2 : 첫 번째 배열과 비교하는 데 사용되는 배열.

  • $ key_compare_func : 사용자 정의 키 비교 함수.

2. 응용 프로그램 시나리오 설명

두 개의 다른 구성 세트를 나타내는 두 개의 다차원 배열이 있다고 가정합니다. 기본 구성에 존재하지만 비교 구성에는없는 최상위 키 (1 단계 키)를 찾으려고합니다.

 $configMain = [
    'database' => [
        'host' => 'localhost',
        'port' => 3306
    ],
    'cache' => [
        'enabled' => true
    ],
    'api' => [
        'endpoint' => 'https://m66.net/api'
    ]
];

$configCompare = [
    'database' => [
        'host' => '127.0.0.1',
        'port' => 3306
    ],
    'cache' => [
        'enabled' => false
    ]
];

$ configmain 의 최상위 키가 $ configcompare (위의 예제의 API 키와 같은)에 어떤 최상위 키가 표시되지 않는지 알고 싶습니다.

코드를 구현하십시오

 <?php

function compareKeys($a, $b) {
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

$configMain = [
    'database' => [
        'host' => 'localhost',
        'port' => 3306
    ],
    'cache' => [
        'enabled' => true
    ],
    'api' => [
        'endpoint' => 'https://m66.net/api'
    ]
];

$configCompare = [
    'database' => [
        'host' => '127.0.0.1',
        'port' => 3306
    ],
    'cache' => [
        'enabled' => false
    ]
];

$diffKeys = array_diff_ukey($configMain, $configCompare, 'compareKeys');

print_r($diffKeys);

4. 출력 결과

 Array
(
    [api] => Array
        (
            [endpoint] => https://m66.net/api
        )
)

보시다시피, Array_diff_ukey ()는 $ configmain 으로 존재하지만 $ configCompare 에서는 최상위 수준 키 API를 성공적으로 찾습니다.

5. 주목할만한 것들

  • 콜백 함수는 두 키를 비교하는 함수 여야합니다. 반환 값 규칙은 strcmp () 와 동일합니다. 0보다 작고, 0, 0보다 큽니다.

  • 이 함수는 값을 비교하지 않고 키 만 비교합니다.

  • 중첩 구조를 비교하려면 최상위 키에 대해서만 유효합니다. 재귀 논리를 사용하여 일치하십시오.

6. 요약

Array_diff_ukey ()를 사용하는 것은 두 배열 간의 키 이름 차이 비교하는 효율적이고 간결한 방법입니다.

구성 차이, 구조 비교 또는 권한 검증 수행에 관계 없이이 기능의 사용을 마스터하면 클리너 및 명확한 PHP 코드를 작성할 수 있습니다.

키 값 쌍의 차이점을 더 비교하려면 Array_Diff_Assoc () 또는 사용자 정의 재귀 기능 처리를 사용하는 것을 고려할 수 있습니다.