
array_uintersect_assoc 함수는 두 개의 연관 배열을 비교할 때, 키가 중복되는 경우 오류를 발생시키지 않습니다. 그러나, 중복된 키가 있으면 함수는 키 중복된 항목을 무시합니다.
예를 들어, 다음과 같은 두 개의 배열을 비교할 경우, 중복된 키 'apple'가 있으면 오류가 발생하지 않습니다.
#hostingforum.kr
php
$array1 = array('apple' => 1, 'banana' => 2, 'apple' => 3);
$array2 = array('banana' => 2, 'apple' => 1, 'orange' => 4);
$result = array_uintersect_assoc($array1, $array2, function($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
});
print_r($result);
위의 예제에서, 중복된 키 'apple'가 있으면 함수는 키 중복된 항목을 무시합니다. 결과적으로, $result는 다음과 같이 출력됩니다.
#hostingforum.kr
php
Array
(
[apple] => 1
[banana] => 2
[orange] => 4
)
오류를 발생시키지 않는 이유는 array_uintersect_assoc 함수가 키 중복된 항목을 무시하기 때문입니다. 만약, 중복된 키가 없으면 함수는 키 중복된 항목을 비교합니다.
중복된 키를 처리하는 방법은 다음과 같습니다.
1. 중복된 키를 제거하기: 중복된 키를 제거하면 함수는 키 중복된 항목을 무시하지 않습니다.
#hostingforum.kr
php
$array1 = array('apple' => 1, 'banana' => 2, 'apple' => 3);
$array2 = array('banana' => 2, 'apple' => 1, 'orange' => 4);
$array1 = array_unique($array1);
$array2 = array_unique($array2);
$result = array_uintersect_assoc($array1, $array2, function($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
});
print_r($result);
2. 중복된 키를 처리하기: 중복된 키를 처리하기 위해, 함수를 재정의할 수 있습니다.
#hostingforum.kr
php
$array1 = array('apple' => 1, 'banana' => 2, 'apple' => 3);
$array2 = array('banana' => 2, 'apple' => 1, 'orange' => 4);
$result = array_uintersect_assoc($array1, $array2, function($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
});
print_r($result);
위의 예제에서, 중복된 키 'apple'가 있으면 함수는 키 중복된 항목을 무시합니다. 결과적으로, $result는 다음과 같이 출력됩니다.
#hostingforum.kr
php
Array
(
[apple] => 1
[banana] => 2
[orange] => 4
)
2025-04-27 08:57