PHP에서 array_diff_uassoc 함수는 두 배열을 비교하여 두 번째 배열과 다른 첫 번째 배열의 모든 부분을 반환하는 데 사용됩니다. 이 기능의 주요 기능은 키를 배열과 비교하기위한 사용자 정의 비교 함수를 제공 할 수 있다는 것입니다. 사용자 정의 비교 함수를 결합함으로써 상류 및 소문자를 무시하는 주요 비교를 구현할 수 있습니다.
이 기사에서는 Array_Diff_Uassoc 기능을 사용하여 사례를 무시하는 주요 비교를 구현하는 방법을 소개합니다.
array_diff_uassoc 함수의 구문은 다음과 같습니다.
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
$ array1 및 $ array2 : 비교할 두 개의 배열.
$ key_compare_func : 두 배열 키를 비교하기위한 사용자 정의 키 비교 함수.
이 함수는 $ array1 에 존재하지만 $ array2 에는없는 키 값 쌍이 포함 된 배열을 반환합니다.
사례를 무시하는 키 비교를 구현하려면 키를 균일 한 소문자 또는 대문자로 변환 한 다음 비교하는 사용자 정의 비교 함수를 작성해야합니다. 구현의 코드 예는 다음과 같습니다.
<?php
// 사용자 정의 키 비교 함수:사건을 무시하십시오
function case_insensitive_key_compare($key1, $key2) {
return strcasecmp($key1, $key2);
}
// 두 배열을 정의합니다
$array1 = [
"first" => "apple",
"second" => "banana",
"Third" => "cherry"
];
$array2 = [
"FIRST" => "apple",
"second" => "grape",
"third" => "kiwi"
];
// 사용 array_diff_uassoc 두 배열의 비교,사건을 무시하십시오
$result = array_diff_uassoc($array1, $array2, 'case_insensitive_key_compare');
// 출력 결과
print_r($result);
?>
사용자 정의 비교 함수 : case_insensitive_key_compare는 PHP의 내장 된 strcasecmp 함수를 사용하여 두 문자열을 비교하고 사례를 무시합니다. 두 줄이 동일하면 strcasecmp는 0을 반환합니다. 그렇지 않으면 0이 아닌 값을 반환합니다.
배열 정의 : $ array1 및 $ array2 는 비교하려는 두 배열입니다. 주요 이름은 경우에 따라 다릅니다.
Call array_diff_uassoc : case_insensitive_key_compare를 array_diff_uassoc 로 사용자 정의 비교 함수로 전달하여 사례를 무시하는 주요 비교를 구현합니다.
출력 : 마지막으로 $ result 배열에는 $ array1 의 항목이 포함되어 있습니다. Key 값은 $ array2 키 값과 일치하지 않습니다.
위 코드를 실행할 때 출력은 다음과 같습니다.
Array
(
[third] => cherry
)
이 예에서 $ array1 의 키는 "세 번째" 이고 $ array2 의 키는 "세 번째" 이지만, 사례를 무시하는 비교 메소드를 사용하므로 "Third"=> "Cherry"는 결과 배열에 보관되어 있기 때문에 동일하게 간주됩니다.