在物件中使用 array_unique
陣列是程式設計中的基本資料結構,經常需要對其執行操作。常見的操作是刪除重複元素。對於原始資料類型的數組,可以使用 array_unique 函數。然而,在處理物件時,事情會變得有點複雜。
問題
想像一下,您有幾個包含 Role 物件的陣列需要合併,然後進行重複資料刪除。有沒有辦法使用類似於 array_unique 的專為物件設計的方法來實現此目的?
解決方案
是的,可以透過以下方式將 array_unique 與物件一起使用指定 SORT_REGULAR 標誌。這將根據物件的屬性而不是物件標識來比較物件。
<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 時,請務必注意它使用「== ”比較,而不是嚴格比較(“===”)。這意味著具有相同屬性但不同物件標識的兩個物件不會被視為重複。因此,如果需要嚴格比較,可能需要採用替代方法。
以上是您可以將'array_unique”與物件一起使用來刪除重複項嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!