PHP에서 배열의 주요 이름은 기본적으로 대소 문자를 사용합니다. 즉, 하나는 UserID 의 키가 있고 다른 하나는 userID가 있는 두 개의 배열이있는 경우 PHP는 두 개의 다른 키로 간주됩니다. 배열의 키 이름을 수행하려면 Array_change_key_case () 및 array_diff_key ()를 조합하여 사용할 수 있습니다.
Array_change_key_case (array $ array, int $ case = case_lower) : 배열의 모든 키 이름을 소문자 또는 대문자로 변환합니다.
Array_diff_key (Array $ array1, array $ array2) : 두 개 이상의 배열의 키 이름을 비교하고 다른 배열이 아닌 첫 번째 배열에서 키 값 쌍을 반환합니다.
먼저 Array_change_key_case ()를 사용하여 두 배열의 주요 이름을 소문자 (또는 대문자)로 통합하면 Array_Diff_Key ()를 사용하여 케이스 독립적 키 이름 비교를 달성 할 수 있습니다.
<?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);
?>
Array
(
[email] => alice@m66.net
)
위의 예에서 볼 수 있듯이 userID 와 사용자 이름은 두 배열에서 키 이름이 다르지만 컨텐츠 로직은 동일합니다. array_change_key_case () 변환 후 array_diff_key () 는 동일한 키로 취급합니다. 이메일 만 $ array2 에 표시되지 않으므로 유지됩니다.
원래 배열의 키 이름 형식 (CASE)을 보존 해야하는 경우 먼저 키 이름 변환 결과를 비교하여 다시 돌아가서 원래 배열에서 해당 키 값을 추출 할 수 있습니다.
이 조합은 양식 제출 또는 API 요청 중 필드 검증과 같은 사용자가 입력 한 동적 데이터를 처리하는 데 이상적입니다.
키 이름이 균일하게 케이스 된 후 array_diff_key ()를 사용하면 사례에 민감한 키 이름 비교 로직을 우아하게 구현할 수 있습니다. 이 방법은 간단하고 효율적이며 다중 소스 데이터 비교를 다룰 때 실용적인 기술입니다.