현재 위치: > 최신 기사 목록> Array_Diff_Uassoc ()를 사용하여 개체 간의 차이를 비교하십시오

Array_Diff_Uassoc ()를 사용하여 개체 간의 차이를 비교하십시오

M66 2025-05-15

PHP에서 array_diff_uassoc ()는 두 배열을 비교하고 키 값 콜백 함수를 기반으로 차이를 판단하는 매우 유용한 기능입니다. 이 기능은 객체가 있고 차이점을 비교하기 위해 배열로 변환하려는 경우 매우 잘 작동합니다.

1. array_diff_uassoc () 의 기본 사용

Array_diff_uassoc () 는 두 배열의 키 값 쌍의 차이를 비교하고 사용자 정의 콜백 함수를 사용하여 차이를 비교하는 방법을 결정하는 데 사용됩니다. 구문은 다음과 같습니다.

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func) : array
  • Array1Array2 :이 두 배열은 비교할 배열입니다.

  • key_compare_func : 이것은 배열의 키를 비교하는 데 사용되는 콜백 함수입니다.

이 함수는 차이가 포함 된 배열을 반환하며, 여기서 각 차이 항은 첫 번째 배열 ( Array1 )에서 나오고 두 번째 배열 ( Array2 )에 나타나지 않습니다.

2. 예 : Array_Diff_Uassoc ()를 사용하여 객체를 배열로 변환 한 후 차이를 비교하는 방법

객체를 배열로 변환 한 후 객체의 차이점을 비교하려고한다고 가정 해 봅시다. 먼저 두 가지 간단한 클래스를 정의해 봅시다.

 class Product {
    public $id;
    public $name;
    public $price;

    public function __construct($id, $name, $price) {
        $this->id = $id;
        $this->name = $name;
        $this->price = $price;
    }
}

$product1 = new Product(1, "Apple", 100);
$product2 = new Product(2, "Banana", 50);
$product3 = new Product(3, "Cherry", 75);

// 객체를 배열로 변환합니다
$array1 = (array)$product1;
$array2 = (array)$product2;
$array3 = (array)$product3;

객체를 배열로 변환 한 후 array_diff_uassoc ()를 사용하여 이러한 배열의 차이를 비교할 수 있습니다.

3. 객체가 배열로 변환 된 후 차이를 비교합니다.

두 배열의 키를 비교하기 위해 콜백 함수를 정의합니다. 이 예에서는 단순히 키 이름을 비교합니다.

 function compare_keys($key1, $key2) {
    return strcmp($key1, $key2);
}

// 사용 array_diff_uassoc() 두 배열의 차이를 비교합니다
$diff1 = array_diff_uassoc($array1, $array2, 'compare_keys');
$diff2 = array_diff_uassoc($array1, $array3, 'compare_keys');

// 출력 결과
print_r($diff1);
print_r($diff2);

이 예에서 Array_Diff_Uassoc ()는 $ array1$ array2 , $ array1$ array3 를 비교하고 차이를 반환합니다.

4. 출력 결과

출력의 차이는 키와 값이 다른 두 어레이의 부분을 보여줍니다. 특정 비교 요구를 충족하기 위해 실제 요구에 따라 콜백 기능을 조정할 수 있습니다.

5. 왜 array_diff_uassoc ()를 사용합니까?

Array_Diff_Uassoc ()를 사용하는 장점은 배열 값을 비교할뿐만 아니라 사용자 정의 규칙에 따라 배열 키를 비교할 수 있다는 것입니다. 이는 특히 데이터 구조가 비교적 복잡 할 때 객체의 배열 특성의 차이를 비교하는 데 매우 유용합니다.

요약

객체를 배열로 변환하고 Array_diff_uassoc ()를 사용하여 두 객체 간의 속성 차이를 쉽게 비교할 수 있습니다. Array_Diff_Uassoc () 는 유연한 콜백 메커니즘을 제공하여 일반 어레이 비교뿐만 아니라 특수 키 규칙을 기반으로 사용자 지정 비교에도 적합합니다.