如何在 PHP 中從數組中刪除重複的物件
array_unique() 函數可以識別並消除數組中的重複元素。但是,對於包含物件的數組,此功能可能不會立即顯現出來。要有效刪除重複的對象,需要進行某些修改。
使用SORT_REGULAR 的解決方案
要使array_unique() 能夠正確處理對象,請將SORT_REGULAR 標誌指定為第二個參數:
<code class="php"><?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 ) )
解釋
透過使用SORT_REGULAR,array_unique() 函數本質上比較了每個對象,將具有相同屬性值的對象視為重複物件。
注意
雖然此方法有效地刪除重複對象,但需要注意的是,它依賴於 ==比較而不是更嚴格的 === 比較。這意味著具有不同身分但相同屬性的物件仍將被視為重複。
以上是如何在 PHP 中刪除數組中的重複物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!