현재 위치: > 최신 기사 목록> array_diff_uassoc ()를 사용하여 연관 배열의 차이를 구별하십시오

array_diff_uassoc ()를 사용하여 연관 배열의 차이를 구별하십시오

M66 2025-06-06

php에서 array_diff_uassoc ()는 두 개의 연관 배열을 비교하고 그들 사이의 차이를 반환하는 함수입니다. 배열의 주요 값을 기반으로 비교할뿐만 아니라 사용자 정의 비교 함수가 값이 동일한 지 여부를 결정할 수 있습니다. 이 기능은 다차원 배열을 처리하거나 특수 비교 로직이 필요한 경우에 매우 적합합니다.

함수 정의

array_diff_uassoc () 의 기본 구문은 다음과 같습니다.

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 : 첫 번째 연관 배열.

  • $ array2 : 두 번째 연관 배열.

  • $ key_compare_func : 배열 키를 비교하는 데 사용되는 콜백 함수. 이 함수는 두 개의 매개 변수를 사용하고 정수 값을 반환하여 비교 결과를 나타냅니다.

예 : 기본 사용

두 개의 연관 배열이 있다고 가정 해 봅시다. 특히 차이점, 특히 두 번째 배열이 아닌 첫 번째 배열에있는 요소를 찾고자합니다.

 <?php
$array1 = array(
    "a" => "apple",
    "b" => "banana",
    "c" => "cherry"
);

$array2 = array(
    "a" => "apple",
    "b" => "blueberry"
);

$result = array_diff_uassoc($array1, $array2, "key_compare");

print_r($result);

function key_compare($key1, $key2) {
    return strcmp($key1, $key2);
}
?>

코드 구문 분석

  1. 우리는 두 개의 연관 배열 $ array1$ array2를 정의합니다.

  2. Array_diff_uassoc () 함수를 사용하여 두 배열과 비교 함수 key_compare를 전달합니다.

  3. key_compare 함수는 strcmp ()를 사용하여 키의 알파벳 순서를 비교합니다. 반환 값은 두 키의 상대적 순서를 결정합니다.

    • 음수가 반환되면 $ key1이 $ key2 보다 작습니다.

    • 0이 반환되면 $ key1$ key2 와 같다는 것을 의미합니다.

    • 양수가 반환되면 $ key1이 $ key2 보다 큽니다.

  4. Array_diff_uassoc () 함수는 $ array1 에서 요소를 반환합니다. 이는 $ array2의 다른 키 또는 값이 다른 $ array1 에서 요소를 반환합니다.

출력 결과

 Array
(
    [c] => cherry
)

위의 출력에서 ​​볼 수 있듯이 Array_diff_uassoc ()$ array1 에서 "c"=> "Cherry"를 반환합니다.이 요소는 $ array2 에서 해당 키 "c"를 찾지 않기 때문입니다.

사용자 정의 비교 기능을 사용하십시오

Array_diff_uassoc ()을 사용하면 간단한 문자열이나 숫자 비교뿐만 아니라 비교 함수를 사용자 정의 할 수 있습니다. 예를 들어, 특정 논리에 따라 키 값 쌍을 비교할 수 있습니다. 예를 들어, 문자 그대로 값 대신 배열 값의 길이를 비교한다고 가정 해 봅시다.

 <?php
$array1 = array(
    "a" => "apple",
    "b" => "banana",
    "c" => "cherry"
);

$array2 = array(
    "a" => "apple",
    "b" => "banana",
    "c" => "pear"
);

$result = array_diff_uassoc($array1, $array2, "length_compare");

print_r($result);

function length_compare($key1, $key2) {
    return strlen($key1) - strlen($key2);
}
?>

URL 예제

URL이 포함 된 배열에서 작업 중이며 차이점을 찾기 위해 Array_Diff_Uassoc ()를 사용해야한다고 가정합니다. 다음은 도메인 이름을 m66.net 으로 바꾸는 특정 예입니다.