>백엔드 개발 >PHP 튜토리얼 >속성 값을 기준으로 배열의 개체를 어떻게 비교할 수 있습니까?

속성 값을 기준으로 배열의 개체를 어떻게 비교할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-23 14:50:43785검색

How Can You Compare Objects in Arrays Based on Property Values?

속성 값을 기준으로 배열의 객체 비교

두 객체 배열 간의 차이점을 확인하는 것은 어려울 수 있습니다. array_diff 및 array_udiff와 같은 함수는 표준 배열에 존재하지만 객체에는 맞춤형 접근 방식이 필요합니다.

특정 속성을 기준으로 객체를 비교하려면 다음 단계를 따르세요.

  1. 비교 함수: 두 개체를 매개 변수로 사용하고 원하는 속성 값 간의 차이를 반환하는 함수를 만듭니다.
  2. 비교 함수와 함께 array_udiff 사용: 개체 배열을 전달하고 array_udiff에 대한 비교 함수입니다. 이 함수는 비교 기능을 사용하여 개체 간의 차이점을 확인합니다.

예를 들어 다음 개체 배열을 고려하세요.

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

두 개체 간의 차이점을 찾으려면 id 속성에서 다음과 같은 비교 함수를 정의합니다.

function compare_objects($obj_a, $obj_b) {
  return $obj_a->id - $obj_b->id;
}

그런 다음 array_udiff를 사용하여 배열을 비교합니다.

$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;
  }
);

이 접근 방식을 사용하면 원하는 속성 값을 기반으로 배열의 객체를 효율적으로 비교할 수 있습니다.

위 내용은 속성 값을 기준으로 배열의 개체를 어떻게 비교할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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