PHP에서는 배열의 주요 이름을 비교하고 차이점을 찾는 것이 일반적인 작업입니다. 내장 된 Array_Diff_Key () 함수를 사용하여 두 배열 간의 키 이름 차이를 비교하지만 키 이름의 비교 로직을보다 자세히 제어하려면 사용자 정의 콜백 함수를 통해 수행 할 수 있습니다. 이 방법은 매우 유연하며 특정 요구에 따라 사용자 정의 할 수 있습니다.
다음으로 배열 키 이름을 비교하고 사용자 정의 콜백 함수를 통해 차이점을 찾는 방법을 보여줍니다.
사용자 정의 콜백 함수 정의 : 먼저 배열의 키 이름을 비교하는 콜백 함수를 정의해야합니다.
Array_Filter () 함수 사용 : Array_Filter ()를 사용하여 배열을 필터링하여 기준을 충족하는 키 이름 만 유지되도록 할 수 있습니다.
비교를 위해 Array_Diff_Key ()를 사용하십시오 . 요구 사항에 따라 배열의 주요 이름을 차별적으로 비교할 수 있습니다.
다음은 배열 키 이름을 비교하고 사용자 정의 콜백 함수를 통해 차이점을 찾는 방법을 보여주는 완전한 예입니다.
<?php
// 예제 배열1
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4
];
// 예제 배열2
$array2 = [
"a" => 1,
"b" => 2,
"e" => 5,
"f" => 6
];
// 사용자 정의 콜백 함수:키 이름이 동일한 지 비교하십시오
function customKeyCompare($key1, $key2) {
// 여기에 자신의 비교 로직을 추가 할 수 있습니다
// 예를 들어,간단한 사례 감지 비교는 다음과 같습니다
return strtolower($key1) === strtolower($key2);
}
// 사용자 정의 기능:두 배열의 주요 이름을 비교하고 차이를 찾으십시오.
function compareArrayKeys($array1, $array2, $callback) {
// 배열의 키 이름을 얻으십시오
$keys1 = array_keys($array1);
$keys2 = array_keys($array2);
// 두 배열로 키 이름을 필터링하십시오,다른 키 이름을 반환합니다
$diffKeys = array_filter($keys1, function($key) use ($keys2, $callback) {
foreach ($keys2 as $key2) {
if ($callback($key, $key2)) {
return false; // 키 이름이 동일하다면 건너 뜁니다
}
}
return true; // 그렇지 않으면,차이 키 이름을 반환합니다
});
return $diffKeys;
}
// 배열 키 이름 차이를 얻습니다
$diffKeys = compareArrayKeys($array1, $array2, "customKeyCompare");
// 차이 키 이름을 인쇄하십시오
echo "차이 키 이름:\n";
print_r($diffKeys);
?>
두 개의 키 이름이 동일한지 비교하는 간단한 사용자 정의 콜백 함수 CustomKeyCompare () 를 정의합니다. 필요에 따라 콜백 함수의 비교 로직을 수정할 수 있습니다. 예를 들어, 위의 코드의 비교는 사례를 무시합니다.
CompareArraykeys () 함수는 두 배열의 키 이름을 비교하고 첫 번째 배열에는 존재하지만 두 번째 배열에는없는 키 이름을 반환하는 데 사용됩니다.
마지막으로, array1 의 키 이름은 array_filter () 를 통해 가로 지르고 Array2 의 키 이름을 하나씩 비교하고 차이의 키 이름을 반환합니다.
차이 키 이름:
Array
(
[2] => c
[3] => d
)
이 예에서 C 와 D는 첫 번째 배열 배열이 아닌 첫 번째 배열 Array1 에 존재하는 주요 이름입니다.
사용자 정의 콜백 함수를 통해 두 배열의 주요 이름을보다 유연하게 비교하고 특정 요구에 따라 키 이름의 비교 로직을 처리 할 수 있습니다. 이 접근법은 특히 내장 기능이 특정 요구를 충족시킬 수없는 상황에 적합합니다.
이 방법은 다양한 유형의 배열 키 이름을 비교 해야하는 경우 매우 실용적인 트릭입니다.