PHP에서 array_diff_uassoc () 함수는 두 배열을 비교하고 키 값 쌍에서 다른 부품을 찾는 매우 강력한 도구입니다. Array_Diff_Assoc () 과 달리 Array_Diff_Uassoc ()을 사용하면 키 이름의 비교 기능을 사용자 정의 할 수 있으므로 기본값으로 사용자 제출 데이터를 처리 할 때 매우 유용합니다.
Array_Diff_Uassoc () 함수는 두 배열의 키 이름과 해당 값을 비교하는 데 사용되며 다른 키 값 쌍이 포함 된 배열을 반환합니다. 기능 서명은 다음과 같습니다.
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
$ array1 : 첫 번째 배열, 일반적으로 사용자가 제출 한 데이터.
$ array2 : 두 번째 배열, 일반적으로 기본값입니다.
$ key_compare_func : 키를 비교하는 데 사용되는 콜백 함수. 0을 반환하면 키가 동일하고 다른 값은 키가 다르다는 것을 의미합니다.
사용자가 데이터를 기본값에 제출하고 차이점을 찾는 양식을 개발한다고 가정 해 봅시다. 다음은 array_diff_uassoc ()를 사용 하여이 기능을 구현하는 방법의 코드 예입니다.
<?php
// 기본값
$default_values = [
'name' => 'John Doe',
'email' => 'john.doe@m66.net',
'age' => 30,
];
// 사용자가 제출 한 데이터
$user_data = [
'name' => 'Jane Doe',
'email' => 'jane.doe@m66.net',
'age' => 30,
];
// 사용자 정의 키 비교 함수
function custom_key_compare($key1, $key2) {
return strcmp($key1, $key2); // 문자열 비교를 사용하십시오
}
// 사용 array_diff_uassoc 차이를 찾으십시오
$differences = array_diff_uassoc($user_data, $default_values, 'custom_key_compare');
// 출력의 차이
if (!empty($differences)) {
echo "다른 데이터 항목을 발견하십시오:\n";
print_r($differences);
} else {
echo "사용자가 제출 한 데이터与기본값完全一致。\n";
}
?>
기본값 및 사용자 제출 데이터 정의 :
$ default_values 배열은 시스템의 기본 데이터이며 사용자 제출 데이터는 $ user_data 배열에 저장됩니다.
사용자 정의 키 비교 기능 :
custom_key_compare는 배열 키를 비교하기 위해 정의하는 함수입니다. 여기서 우리는 strcmp () 함수를 사용하여 키에서 문자열 비교를 수행합니다.
Call array_diff_uassoc () :
Array_Diff_Uassoc () 함수를 사용하여 두 배열 (사용자 데이터 및 기본값)을 비교하고 사용자 정의 키 비교 함수를 전달합니다.
이 함수는 키 이름이나 값이 다른 키 값 쌍을 포함하는 배열을 반환합니다.
출력 결과 :
차이가있는 경우 다른 데이터 항목을 출력하십시오. 둘 다 정확히 동일하면 프롬프트 메시지가 출력됩니다.
웹 사이트 사용자 설정 페이지를 작성하고 있으며 사용자가 제출 한 양식 데이터를 시스템의 기본 구성과 비교하여 수정 된 항목을 찾으십시오. Array_diff_uassoc ()을 사용하면 수동으로 많은 비교 로직을 쓰지 않고도 쉽게이를 달성 할 수 있습니다.
키 이름의 비교 : array_diff_uassoc ()는 키 이름과 키 값 만 비교합니다. 키 이름에 관계없이 값을 비교하려면 array_diff () 또는 array_diff_assoc ()를 사용하는 것을 고려하십시오.
콜백 함수 사용 : key_compare_func 콜백 함수는 매우 유연하며 실제 요구에 따라 키 이름을 비교하는 방법을 결정할 수 있습니다.