현재 위치: > 최신 기사 목록> array_udiff_uassoc ()와 array_diff_uassoc ()의 차이점은 무엇입니까? 사용 시나리오와 기능은 무엇입니까?

array_udiff_uassoc ()와 array_diff_uassoc ()의 차이점은 무엇입니까? 사용 시나리오와 기능은 무엇입니까?

M66 2025-06-06

php에서 array_udiff_uassoc ()array_diff_uassoc () 는 배열을 비교하는 데 사용되는 함수이지만 다른 함수, 용도 및 구현 방법이 있습니다. 이 기사에서는이 두 기능의 차이점을 파고 사용 시나리오와 기능에 대해 논의 할 것입니다.

1. 기능 소개

  1. Array_udiff_uassoc ()
    array_udiff_uassoc () 함수는 키 이름과 키 값을 비교하면서 둘 이상의 배열의 차이를 반환합니다. 이 기능은 사용자 정의 키 값 비교 함수를 통한 배열 간의 차이를 결정할 수 있습니다.

    기능 프로토 타입 :

     array_udiff_uassoc(array $array1, array $array2, callable $value_compare_func, callable $key_compare_func): array
    
    • 매개 변수 :

      • $ array1, $ array2 : 비교 해야하는 배열.

      • $ value_compare_func : 사용자 정의 비교 함수, 비교 값의 동등성.

      • $ key_compare_func : 사용자 정의 비교 함수, 비교 키의 동등성.

    이 기능은 값을 기준으로 비교할뿐만 아니라 키 이름을 기반으로 비교할 수 있으며, 이는 값 및 키 비교 로직의 정확한 제어가 필요한 시나리오에 적합합니다.

  2. Array_diff_uassoc ()
    Array_diff_uassoc () 함수는 Array_udiff_uassoc () 와 유사하지만 배열의 값과 키 만 고려하며 사용자가 비교 로직을 사용자 정의 할 수 없습니다. 두 배열과 첫 번째 배열에만 나타나는 요소의 차이점을 비교합니다.

    기능 프로토 타입 :

     array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
    
    • 매개 변수 :

      • $ array1, $ array2 : 비교 해야하는 배열.

      • $ key_compare_func : 키 이름이 동일인지 비교하는 데 사용되는 함수.

    이 기능은 사용자 정의 키 비교 로직이 필요한 시나리오에 적합한 사용자 정의 키 비교 함수를 통해 배열의 주요 이름 차이를 비교합니다.

2. 기능적 차이

  1. 비교 내용

    • Array_udiff_uassoc ()는 배열의 키 값과 키 이름을 동시에 비교합니다. 이는 배열 키와 값을 비교하는 방법을 사용자 정의 해야하는 상황에 적합합니다.

    • Array_Diff_Uassoc ()는 배열의 키 이름 차이 만 비교하고 키를 비교하는 방법을 사용자 정의 할 수 있습니다.

  2. 매개 변수 수

    • Array_udiff_uassoc ()는 비교를 위해 여러 배열을 허용 할 수 있지만 Array_diff_uassoc ()는 두 배열의 차이 만 비교합니다.

3. 시나리오를 사용하십시오

1. Array_udiff_uassoc () 사용 시나리오

하나는 사용자의 ID와 이름이 있고 다른 하나는 사용자의 ID 및 사서함이있는 두 개의 배열이 있다고 가정 해 봅시다. 키와 값의 차이점을 고려하고 사용자 정의 비교 규칙을 사용 하여이 두 배열을 비교해야합니다.

 $array1 = [
    1 => 'John Doe',
    2 => 'Jane Smith',
    3 => 'George Brown'
];

$array2 = [
    1 => 'John Doe',
    2 => 'Jane S.',
    4 => 'Alice Green'
];

$value_compare_func = function ($a, $b) {
    return strcmp($a, $b);
};

$key_compare_func = function ($a, $b) {
    return $a - $b;
};

$result = array_udiff_uassoc($array1, $array2, $value_compare_func, $key_compare_func);
print_r($result);

산출:

 Array
(
    [3] => George Brown
)

이 예에서 Array_udiff_uassoc ()는 두 배열의 값과 키를 비교하고 마지막으로 Array1 의 차이 항을 리턴합니다.

2. Array_diff_uassoc () 사용 시나리오

키의 차이에 따라 배열을 비교하고 값의 차이를 신경 쓰지 않으면 array_diff_uassoc () 가 더 적합한 선택입니다. 예를 들어, 사용자 ID 및 기타 정보가 포함 된 두 개의 배열이 있다고 가정하고 첫 번째 배열에는 존재하지만 두 번째 배열에는없는 키를 찾으려고합니다.

 $array1 = [
    1 => 'John Doe',
    2 => 'Jane Smith',
    3 => 'George Brown'
];

$array2 = [
    1 => 'John Doe',
    4 => 'Alice Green'
];

$key_compare_func = function ($a, $b) {
    return $a - $b;
};

$result = array_diff_uassoc($array1, $array2, $key_compare_func);
print_r($result);

산출:

 Array
(
    [2] => Jane Smith
    [3] => George Brown
)

이 예에서는 array_diff_uassoc ()는 키 차이에 따라 Array1 의 요소 만 반환합니다.

4. 요약

특성 Array_udiff_uassoc () Array_diff_uassoc ()
비교 내용 가치와 키 키만
사용자 정의 비교 함수를 허용할지 여부 예 (값과 키는 사용자 정의와 비교할 수 있습니다) 예 (사용자 정의 키 비교 만 허용됩니다)
해당 시나리오 값과 키의 차이를 고려해야합니다. 열쇠의 차이점에 관심이 있습니다

일반적으로 array_udiff_uassoc () 또는 array_diff_uassoc ()를 사용하도록 선택하는 것은 사용자 정의 값을 비교 해야하는지 여부와 값을 키와 비교 해야하는지 여부에 따라 다릅니다. 이 두 기능의 차이를 이해하면 특정 요구에 따라 올바른 선택을하는 데 도움이됩니다.