객체에 array_unique 사용
배열은 프로그래밍의 기본 데이터 구조이며 배열에 대해 수행해야 하는 작업이 있는 경우가 많습니다. 일반적인 작업 중 하나는 중복 요소를 제거하는 것입니다. 기본 데이터 유형의 배열의 경우 array_unique 함수를 사용할 수 있습니다. 그러나 객체를 다룰 때는 상황이 좀 더 복잡해집니다.
문제
병합한 후 중복 제거해야 하는 Role 객체가 포함된 여러 배열이 있다고 상상해 보십시오. 객체용으로 특별히 설계된 array_unique와 유사한 방법을 사용하여 이를 달성할 수 있는 방법이 있습니까?
해결책
예, 다음과 같이 객체와 함께 array_unique를 사용할 수 있습니다. SORT_REGULAR 플래그를 지정합니다. 이렇게 하면 객체 ID가 아닌 속성을 기준으로 객체를 비교합니다.
<code class="php">class MyClass { public $prop; } $foo = new MyClass(); $foo->prop = 'test1'; $bar = $foo; $bam = new MyClass(); $bam->prop = 'test2'; $test = array($foo, $bar, $bam); print_r(array_unique($test, SORT_REGULAR));</code>
출력:
Array ( [0] => MyClass Object ( [prop] => test1 ) [2] => MyClass Object ( [prop] => test2 ) )
중요 참고:
객체와 함께 array_unique를 사용할 때 엄격한 비교("===")가 아닌 "==" 비교를 사용한다는 점에 유의하는 것이 중요합니다. 즉, 속성은 동일하지만 개체 ID가 다른 두 개체는 중복된 것으로 간주되지 않습니다. 따라서 엄격한 비교가 필요한 경우 대체 접근 방식이 필요할 수 있습니다.
위 내용은 중복을 제거하기 위해 객체에 'array_unique'를 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!