
array_uintersect_uassoc 함수는 두 개의 배열을 비교할 때, 키와 값을 모두 비교합니다. 키가 중복되는 경우, array_uintersect_uassoc 함수는 첫 번째 배열의 키 값을 사용합니다.
예를 들어, 배열 A = ['apple' => 1, 'banana' => 2, 'apple' => 3]과 배열 B = ['banana' => 4, 'apple' => 5, 'orange' => 6]을 비교할 때, 중복 키 'apple'의 경우 배열 A의 키 값인 1이 사용됩니다.
array_uintersect_uassoc 함수는 중복 키를 자동으로 제거하지 않습니다. 따라서, 중복 키가 있는 배열을 비교할 때, 결과가 올바른지 확인해야 합니다.
이러한 문제를 해결하기 위해, 중복 키를 제거한 배열을 비교하는 것이 좋습니다. 예를 들어, 다음 코드를 사용할 수 있습니다.
#hostingforum.kr
php
$arrayA = ['apple' => 1, 'banana' => 2, 'apple' => 3];
$arrayB = ['banana' => 4, 'apple' => 5, 'orange' => 6];
$arrayA = array_change_key_case($arrayA, CASE_LOWER);
$arrayB = array_change_key_case($arrayB, CASE_LOWER);
$result = array_uintersect_uassoc($arrayA, $arrayB, 'cmpFunction');
print_r($result);
위 코드에서는 array_change_key_case 함수를 사용하여 모든 키를 소문자로 변환합니다. 이렇게 하면 중복 키가 제거되고, array_uintersect_uassoc 함수가 올바르게 작동합니다.
2025-07-13 13:44