현재 위치: > 최신 기사 목록> key-value 비교를 위해 array_diff_key ()와 결합 된 Array_change_key_case ()를 사용하는 방법?

key-value 비교를 위해 array_diff_key ()와 결합 된 Array_change_key_case ()를 사용하는 방법?

M66 2025-04-24

PHP에서 배열의 주요 이름은 기본적으로 대소 문자를 사용합니다. 즉, 하나는 UserID 의 키가 있고 다른 하나는 userID가 있는 두 개의 배열이있는 경우 PHP는 두 개의 다른 키로 간주됩니다. 배열의 키 이름을 수행하려면 Array_change_key_case ()array_diff_key ()를 조합하여 사용할 수 있습니다.

1. 기능 소개

  • Array_change_key_case (array $ array, int $ case = case_lower) : 배열의 모든 키 이름을 소문자 또는 대문자로 변환합니다.

  • Array_diff_key (Array $ array1, array $ array2) : 두 개 이상의 배열의 키 이름을 비교하고 다른 배열이 아닌 첫 번째 배열에서 키 값 쌍을 반환합니다.

먼저 Array_change_key_case ()를 사용하여 두 배열의 주요 이름을 소문자 (또는 대문자)로 통합하면 Array_Diff_Key ()를 사용하여 케이스 독립적 키 이름 비교를 달성 할 수 있습니다.

2. 샘플 코드

 <?php

// 원래 배열
$array1 = [
    'UserID' => 1,
    'UserName' => 'Alice',
    'Email' => 'alice@m66.net',
];

$array2 = [
    'userid' => 2,
    'username' => 'Bob',
    'Phone' => '1234567890',
];

// 두 배열 키를 소문자로 변환하십시오
$lower1 = array_change_key_case($array1, CASE_LOWER);
$lower2 = array_change_key_case($array2, CASE_LOWER);

// 알아내다 $array1 그것들 $array2 키가 없습니다(사건을 무시하십시오)
$diffKeys = array_diff_key($lower1, $lower2);

// 차동 키 이름과 해당 값을 출력하십시오
print_r($diffKeys);

?>

3. 출력 결과

 Array
(
    [email] => alice@m66.net
)

위의 예에서 볼 수 있듯이 userID사용자 이름은 두 배열에서 키 이름이 다르지만 컨텐츠 로직은 동일합니다. array_change_key_case () 변환 후 array_diff_key () 는 동일한 키로 취급합니다. 이메일$ array2 에 표시되지 않으므로 유지됩니다.

4. 팁

  • 원래 배열의 키 이름 형식 (CASE)을 보존 해야하는 경우 먼저 키 이름 변환 결과를 비교하여 다시 돌아가서 원래 배열에서 해당 키 값을 추출 할 수 있습니다.

  • 이 조합은 양식 제출 또는 API 요청 중 필드 검증과 같은 사용자가 입력 한 동적 데이터를 처리하는 데 이상적입니다.

5. 요약

키 이름이 균일하게 케이스 된 후 array_diff_key ()를 사용하면 사례에 민감한 키 이름 비교 로직을 우아하게 구현할 수 있습니다. 이 방법은 간단하고 효율적이며 다중 소스 데이터 비교를 다룰 때 실용적인 기술입니다.