>  기사  >  백엔드 개발  >  속성 열을 기반으로 객체 배열의 배열 차이를 찾는 방법은 무엇입니까?

속성 열을 기반으로 객체 배열의 배열 차이를 찾는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-23 14:40:57440검색

How to Find Array Difference for Object Arrays Based on a Property Column?

속성 열을 기반으로 객체 배열의 배열 차이 가져오기

PHP 프로그래밍 영역에서 array_diff 및 array_udiff 함수는 두 배열 간의 차이를 확인하는 수단을 제공합니다. 그러나 객체 배열을 다룰 때는 맞춤형 접근 방식이 필요합니다.

그림과 같은 객체 배열은

<code class="php">array(4) {
    [0]=>
        object(stdClass)#32 (9) {
            ["id"]=>
            string(3) "205"
            ["day_id"]=>
            string(2) "12"
        }
}</code>

특히 원하는 경우 독특한 과제를 제기합니다. 예의 "id"와 같은 특정 열의 값을 기반으로 차이를 확인합니다.

이 문제를 해결하기 위해 array_udiff 함수가 도움이 됩니다. 객체 비교를 담당하는 사용자 정의 함수인 세 번째 매개변수를 사용합니다. 적합한 비교 함수를 만들어 array_udiff에 원하는 작업을 수행하도록 지시할 수 있습니다.

이를 달성하는 방법의 예는 다음과 같습니다.

<code class="php">function compare_objects($obj_a, $obj_b) {
  return $obj_a->id - $obj_b->id;
}

$diff = array_udiff($first_array, $second_array, 'compare_objects');</code>

PHP 5.3에서는 익명 함수를 사용할 수 있습니다. 별도의 함수를 선언하는 대신:

<code class="php">$diff = array_udiff($first_array, $second_array,
  function ($obj_a, $obj_b) {
    return $obj_a->id - $obj_b->id;
  }
);</code>

이제 이러한 기술을 사용하면 원하는 열이나 속성의 값을 비교하여 객체 배열 간의 차이를 효과적으로 확인할 수 있습니다.

위 내용은 속성 열을 기반으로 객체 배열의 배열 차이를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.