首頁  >  文章  >  後端開發  >  如何在 PHP 中刪除數組中的重複物件?

如何在 PHP 中刪除數組中的重複物件?

Linda Hamilton
Linda Hamilton原創
2024-11-04 08:49:02393瀏覽

How to Remove Duplicate Objects from an Array in PHP?

如何在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn