php에서 array_diff_key ()는 두 배열이나 객체의 주요 차이를 비교하는 데 사용할 수있는 매우 유용한 기능입니다. 객체가 두 개 있고 속성 차이를 빠르게 비교하려면 객체를 배열로 변환 한 다음 Array_Diff_Key () 함수를 통해 구현할 수 있습니다. 다음은 예제를 사용하여 array_diff_key ()를 사용하여 객체의 속성 차이를 비교하는 방법을 자세히 설명합니다.
Array_Diff_Key () 함수는 두 배열의 키를 비교하고 첫 번째 배열에 존재하지만 두 번째 어레이에는 존재하지 않는 모든 키를 포함하는 배열을 반환하는 데 사용됩니다.
함수 정의 :
array_diff_key(array $array1, array $array2): array
$ array1 : 첫 번째 배열.
$ array2 : 두 번째 배열.
$ array1 에서 키를 포함하는 배열을 반환하지만 $ array2 는 아닙니다.
PHP 객체는 클래스로 정의되므로 배열과 같은 주요 이름이 없습니다. Array_Diff_Key ()를 사용하여 두 객체 간의 속성 차이를 비교하려면 먼저 객체를 배열로 변환해야합니다. 이 변환은 get_object_vars () 함수를 사용하여 달성 할 수 있습니다.
<?php
class Person {
public $name;
public $age;
public $email;
public function __construct($name, $age, $email) {
$this->name = $name;
$this->age = $age;
$this->email = $email;
}
}
$obj1 = new Person("Alice", 25, "alice@m66.net");
$obj2 = new Person("Bob", 30, "bob@m66.net");
$array1 = get_object_vars($obj1);
$array2 = get_object_vars($obj2);
// 사용 array_diff_key 객체의 속성 차이를 비교하십시오
$diff = array_diff_key($array1, $array2);
// 출력 차이
print_r($diff);
?>
산출:
Array
(
[name] => Alice
[age] => 25
[email] => alice@m66.net
)
정의 수업 담당자 : 이름 , 나이 및 이메일의 세 가지 공개 속성이 포함 된 개인 클래스를 정의합니다.
개체 생성 : 두 사람 객체 OBJ1 과 OBJ2 는 각각 다른 인력 정보를 나타냅니다.
배열로 변환 :이 두 객체를 get_object_vars () 함수를 통해 연관 배열로 변환하십시오.
비교 차이 : Array_Diff_Key ()를 사용하여 두 배열의 주요 차이점을 비교하십시오. 이 시점에서 Array_Diff_Key () 는 $ array1 이지만 $ array2 에 속하지 않은 속성 키를 반환합니다.
이 예에서는 OBJ1 및 OBJ2 의 속성이 정확히 동일하므로 Array_Diff_Key ()는 빈 배열을 반환합니다. 실제 비즈니스 요구에 따라 객체의 속성을 조정하여 Array_Diff_Key ()가 다른 속성을 표시 할 수 있습니다.
예를 들어, 이메일 속성이 없도록 OBJ2를 수정한다고 가정합니다.
$obj2 = new Person("Bob", 30, "");
현재 array_diff_key ()를 실행하면 OBJ1 에는 이메일 속성이 있고 OBJ2는 그렇지 않습니다.
Array_Diff_Key () 는 두 배열이나 객체 간의 주요 차이를 빠르게 비교할 수있는 매우 효과적인 도구입니다. 실제 개발, 특히 사용자 데이터, API 요청 및 기타 시나리오를 처리 할 때 객체 속성의 차이를 찾는 데 매우 편리하게 사용될 수 있습니다. 객체를 배열로 변환하면 Array_Diff_Key ()는 차이를 쉽게 식별 할 수 있습니다.
이 기사가 Array_Diff_Key () 함수를 더 잘 이해하고 사용하여 두 객체 간의 속성 차이를 비교할 수 있기를 바랍니다.