현재 위치: > 최신 기사 목록> Array_Diff_Uassoc ()을 사용하여 사용자 제출 데이터를 기본값과 비교하십시오

Array_Diff_Uassoc ()을 사용하여 사용자 제출 데이터를 기본값과 비교하십시오

M66 2025-05-15

PHP에서 array_diff_uassoc () 함수는 두 배열을 비교하고 키 값 쌍에서 다른 부품을 찾는 매우 강력한 도구입니다. Array_Diff_Assoc () 과 달리 Array_Diff_Uassoc ()을 사용하면 키 이름의 비교 기능을 사용자 정의 할 수 있으므로 기본값으로 사용자 제출 데이터를 처리 할 때 매우 유용합니다.

1. 기능 소개

Array_Diff_Uassoc () 함수는 두 배열의 키 이름과 해당 값을 비교하는 데 사용되며 다른 키 값 쌍이 포함 된 배열을 반환합니다. 기능 서명은 다음과 같습니다.

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 : 첫 번째 배열, 일반적으로 사용자가 제출 한 데이터.

  • $ array2 : 두 번째 배열, 일반적으로 기본값입니다.

  • $ key_compare_func : 키를 비교하는 데 사용되는 콜백 함수. 0을 반환하면 키가 동일하고 다른 값은 키가 다르다는 것을 의미합니다.

2. 샘플 코드 : 기본값과 사용자 제출 데이터 비교

사용자가 데이터를 기본값에 제출하고 차이점을 찾는 양식을 개발한다고 가정 해 봅시다. 다음은 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";
}
?>

3. 코드 파싱

  1. 기본값 및 사용자 제출 데이터 정의 :

    • $ default_values ​​배열은 시스템의 기본 데이터이며 사용자 제출 데이터는 $ user_data 배열에 저장됩니다.

  2. 사용자 정의 키 비교 기능 :

    • custom_key_compare는 배열 키를 비교하기 위해 정의하는 함수입니다. 여기서 우리는 strcmp () 함수를 사용하여 키에서 문자열 비교를 수행합니다.

  3. Call array_diff_uassoc () :

    • Array_Diff_Uassoc () 함수를 사용하여 두 배열 (사용자 데이터 및 기본값)을 비교하고 사용자 정의 키 비교 함수를 전달합니다.

    • 이 함수는 키 이름이나 값이 다른 키 값 쌍을 포함하는 배열을 반환합니다.

  4. 출력 결과 :

    • 차이가있는 경우 다른 데이터 항목을 출력하십시오. 둘 다 정확히 동일하면 프롬프트 메시지가 출력됩니다.

4. 실제 적용

웹 사이트 사용자 설정 페이지를 작성하고 있으며 사용자가 제출 한 양식 데이터를 시스템의 기본 구성과 비교하여 수정 된 항목을 찾으십시오. Array_diff_uassoc ()을 사용하면 수동으로 많은 비교 로직을 쓰지 않고도 쉽게이를 달성 할 수 있습니다.

5. 주목할만한 것들

  • 키 이름의 비교 : array_diff_uassoc ()는 키 이름과 키 값 만 비교합니다. 키 이름에 관계없이 값을 비교하려면 array_diff () 또는 array_diff_assoc ()를 사용하는 것을 고려하십시오.

  • 콜백 함수 사용 : key_compare_func 콜백 함수는 매우 유연하며 실제 요구에 따라 키 이름을 비교하는 방법을 결정할 수 있습니다.