PHP 프로그래밍 영역에서 array_diff 및 array_udiff 함수는 두 배열 간의 차이를 확인하는 수단을 제공합니다. 그러나 객체 배열을 처리할 때는 사용자 정의 접근 방식이 필요합니다.
표시된 것과 같은 객체 배열:
array(4) {
[0]=>
object(stdClass)#32 (9) {
["id"]=>
string(3) "205"
["day_id"]=>
string(2) "12"
}
}
는 특히 예제의 "id"와 같은 특정 열의 값을 기반으로 차이를 확인하려는 경우 독특한 문제를 제기합니다.
이 문제를 해결하기 위해 array_udiff 함수가 제공됩니다. 우리의 도움을 위해. 객체 비교를 담당하는 사용자 정의 함수인 세 번째 매개변수를 사용합니다. 적절한 비교 함수를 만들어 array_udiff에 원하는 작업을 수행하도록 지시할 수 있습니다.
이를 달성하는 방법의 예는 다음과 같습니다.
function compare_objects($obj_a, $obj_b) {
return $obj_a->id - $obj_b->id;
}
$diff = array_udiff($first_array, $second_array, 'compare_objects');
PHP 5.3에서는 별도의 함수를 선언하는 대신 익명 함수를 사용할 수 있습니다:
$diff = array_udiff($first_array, $second_array,
function ($obj_a, $obj_b) {
return $obj_a->id - $obj_b->id;
}
);
이제 이러한 기술을 사용하면 원하는 열이나 속성의 값을 비교하여 개체 배열 간의 차이를 효과적으로 확인할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3