php에서 array_udiff_uassoc () 및 array_diff_uassoc () 는 배열을 비교하는 데 사용되는 함수이지만 다른 함수, 용도 및 구현 방법이 있습니다. 이 기사에서는이 두 기능의 차이점을 파고 사용 시나리오와 기능에 대해 논의 할 것입니다.
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 : 사용자 정의 비교 함수, 비교 키의 동등성.
이 기능은 값을 기준으로 비교할뿐만 아니라 키 이름을 기반으로 비교할 수 있으며, 이는 값 및 키 비교 로직의 정확한 제어가 필요한 시나리오에 적합합니다.
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 : 키 이름이 동일인지 비교하는 데 사용되는 함수.
이 기능은 사용자 정의 키 비교 로직이 필요한 시나리오에 적합한 사용자 정의 키 비교 함수를 통해 배열의 주요 이름 차이를 비교합니다.
비교 내용
Array_udiff_uassoc ()는 배열의 키 값과 키 이름을 동시에 비교합니다. 이는 배열 키와 값을 비교하는 방법을 사용자 정의 해야하는 상황에 적합합니다.
Array_Diff_Uassoc ()는 배열의 키 이름 차이 만 비교하고 키를 비교하는 방법을 사용자 정의 할 수 있습니다.
매개 변수 수
Array_udiff_uassoc ()는 비교를 위해 여러 배열을 허용 할 수 있지만 Array_diff_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 의 차이 항을 리턴합니다.
키의 차이에 따라 배열을 비교하고 값의 차이를 신경 쓰지 않으면 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 의 요소 만 반환합니다.
특성 | Array_udiff_uassoc () | Array_diff_uassoc () |
---|---|---|
비교 내용 | 가치와 키 | 키만 |
사용자 정의 비교 함수를 허용할지 여부 | 예 (값과 키는 사용자 정의와 비교할 수 있습니다) | 예 (사용자 정의 키 비교 만 허용됩니다) |
해당 시나리오 | 값과 키의 차이를 고려해야합니다. | 열쇠의 차이점에 관심이 있습니다 |
일반적으로 array_udiff_uassoc () 또는 array_diff_uassoc ()를 사용하도록 선택하는 것은 사용자 정의 값을 비교 해야하는지 여부와 값을 키와 비교 해야하는지 여부에 따라 다릅니다. 이 두 기능의 차이를 이해하면 특정 요구에 따라 올바른 선택을하는 데 도움이됩니다.
관련 태그:
array_udiff_uassoc