현재 위치: > 최신 기사 목록> PHP의 array_uintersect_uassoc () 함수에 대한 자세한 설명 : 배열의 키와 값 비교 방법

PHP의 array_uintersect_uassoc () 함수에 대한 자세한 설명 : 배열의 키와 값 비교 방법

gitbox 2025-06-13

1. array_uintersect_uassoc () 함수는 무엇입니까?

php에서 array_uintersect_uassoc ()는 둘 이상의 배열의 교차점을 계산하는 데 사용되는 함수입니다. 기존 array_intersect ()와 달리 Array_Uintersect_uassoc ()는 배열의 값을 비교할뿐만 아니라 배열의 키를 비교하고 사용자 정의 콜백 함수를 지원하여 비교 프로세스를 제어합니다.

1.1 기능 정의

array_uintersect_uassoc () 함수는 다음과 같이 정의됩니다.

 
function array_uintersect_uassoc(array $array1, array $array2, array ...$arrays, callable $key_compare_func, callable $value_compare_func) : array;
        

함수 매개 변수 설명 :

  • Array1, Array2, ... : 비교 해야하는 배열.
  • key_compare_func : 배열 키를 비교하는 데 사용되는 콜백 함수.
  • value_compare_func : 배열 값을 비교하는 데 사용되는 콜백 함수.

반환 값 :이 함수는 두 개 이상의 배열 사이에 키와 값 일치하는 키를 포함하는 배열을 반환합니다.

1.2 콜백 함수

Array_Uintersect_uassoc () 함수에는 배열의 키와 값을 비교하기 위해 두 개의 콜백 함수가 필요합니다. 이 두 콜백 함수는 정수 값을 반환하여 두 요소의 크기인지 여부를 결정해야합니다. 0을 반환한다는 것은 일치하는 것을 의미하며 긍정적이거나 부정적인 반환은 불일치를 의미합니다.

다음은 array_uintersect_uassoc () 함수 및 해당 콜백 함수 사용 방법을 보여주는 예입니다.

 
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry');
$array2 = array('c' => 'cherry', 'd' => 'date', 'e' => 'elderberry');

$result = array_uintersect_uassoc(
    $array1,
    $array2,
    'strcasecmp',  // 키 이름 비교 콜백 함수
    function($a, $b) {  // 값 비교 콜백 함수
        if ($a === $b) {
            return 0;
        }
        return ($a > $b) ? 1 : -1;
    }
);

print_r($result);
        

출력 결과는 다음과 같습니다.

 배열 ([C] => 체리)

위의 코드에서는 strcasecmp ()를 사용하여 키 이름 (Case Insensitive)을 비교하고 익명 함수를 정의하여 값의 크기를 비교합니다.

2. array_uintersect_uassoc () 함수의 시나리오를 사용하십시오

Array_Uintersect_uassoc () 함수는 여러 배열에서 공통적 인 요소를 비교하는 데 매우 적합합니다. 특히 사용자 정의 규칙을 기반으로 배열의 키와 값을 비교해야 할 때. 예를 들어, 웹 사이트 사용자의 관심사와 취미를 처리한다고 가정하면이 기능을 사용하여 여러 사용자 간의 공통 관심사를 찾을 수 있습니다.

3. array_uintersect_uassoc () 함수의 응용 예제

우리가 자동차 클럽을 가지고 있고 각 회원마다 차량 정보가 있다고 가정 해 봅시다. 클럽과 회원들 사이에 공유되는 차량을 찾고자한다. Array_Uintersect_uassoc ()를 사용하여 비교할 수 있습니다.

 
$member_cars = array(
    'Amanda' => 'Porsche',
    'Tina' => 'Audi',
    'Luis' => 'Mercedes',
    'Tom' => 'BMW'
);

$club_cars = array(
    'Rob' => 'Porsche',
    'Tina' => 'Audi',
    'Lena' => 'Mercedes',
    'Tom' => 'BMW'
);

$common_cars = array_uintersect_uassoc(
    $member_cars,
    $club_cars,
    function($key1, $key2) {
        return strcmp($key1, $key2);
    },
    function($value1, $value2) {
        return strcmp($value1, $value2);
    }
);

print_r($common_cars);
        

출력 결과는 다음과 같습니다.

 배열 ([tina] => audi [luis] => 메르세데스 [tom] => bmw)

이 예는 회원과 클럽이 소유 한 차량을 비교하는 방법을 보여줍니다.

4. 요약

Array_Uintersect_uassoc () 함수는 여러 배열에서 공통 키와 값을 찾는 데 도움이되는 효율적인 배열 비교 도구입니다. 사용자 정의 콜백 함수를 사용하면 키와 값의 비교 규칙을 정확하게 제어하여 다른 시나리오에 유연하게 적용 할 수 있습니다.

이 기능을 사용할 때는 정확한 결과를 보장하기 위해 키 및 값 비교를 처리하기 위해 적절한 콜백 기능을 제공해야합니다.