현재 위치: > 최신 기사 목록> 콜백을 사용하여 키 이름의 "무시"비교 로직을 구현하십시오.

콜백을 사용하여 키 이름의 "무시"비교 로직을 구현하십시오.

M66 2025-05-15

php에서 array_diff_ukey ()는 두 개 이상의 배열의 "키 이름"을 비교하고 첫 번째 배열의 요소를 반환하는 매우 실용적인 기능입니다.

일반적 으로이 함수는 콜백 함수를 사용하여 키 이름을 비교하는 방식을 사용자 정의합니다. 그러나 기본 키 이름 비교는 사례에 민감합니다. 즉 '키''키'는 두 가지 다른 키 이름으로 간주됩니다.

그러나 비교 사례를 무시하려면 (즉, '키''키'가 동일한 키로 간주된다면 어떨까요?) 대답은 커스텀 콜백 함수를 사용하여 사례에 민감한 비교 로직을 구현하는 것입니다.

샘플 코드

다음은 키 이름을 비교할 때 Array_Diff_Ukey ()를 사용하는 방법과 콜백 함수를 사용하는 예를 보여줍니다.

 <?php

$array1 = [
    "UserID" => 1,
    "Email" => "user1@m66.net",
    "Name" => "Alice"
];

$array2 = [
    "userid" => 2,
    "email" => "user2@m66.net"
];

// 사용자 정의 비교 기능:사례 비교를 무시하십시오
function compareKeysCaseInsensitive($key1, $key2) {
    return strcasecmp($key1, $key2); // 반품0평등을 나타냅니다
}

$result = array_diff_ukey($array1, $array2, "compareKeysCaseInsensitive");

print_r($result);

출력 결과

 Array
(
    [Name] => Alice
)

위에서 볼 수 있듯이 $ array1 에는 userID이메일이 있지만 $ array2 에는 userID이메일이 있으므로 사례를 무시한 후에 동일하므로 결과에서 제외됩니다.

결국 "키 이름이 동일 (사례를 무시)"이있는 항목이 없기 때문에 이름 만 남습니다.

요약

배열을 처리 할 때 키 이름을 비교해야하지만 사례 차이를 무시 하려면 array_diff_ukey () 를 사용하여 strcasecmp ()가 매우 간결하고 강력한 조합입니다.

  • array_diff_ukey ()를 사용하여 키 이름을 비교하십시오

  • Case Insensitive Comparison Logic을 구현하기 위해 콜백 함수로 strcasecmp ()를 사용하십시오.

이는 사용자 입력, 데이터베이스 필드 이름 또는 경우에 따라 다를 수 있지만 의미 론적 일관된 데이터를 처리 할 때 특히 유용합니다.

이 기사가 PHP 배열 기능을 이해하고 사용하는 데 도움이되기를 바랍니다.