使用 array_unique 的唯一物件
使用 array_unique 的唯一物件
在 PHP 中,array_unique 函數有助於消除陣列中的重複值。然而,當處理包含物件的陣列時,此功能似乎無法如預期般運作。
輸入解決方案:
對於物件數組,您可以使用 array_unique與 SORT_REGULAR 比較標誌。此標誌指示函數透過物件的屬性而不是物件參考來比較物件。
實作:
class Role {
public $name;
}
$foo = new Role();
$foo->name = 'test1';
$bar = $foo;
$bam = new Role();
$bam->name = 'test2';
$test = array($foo, $bar, $bam);
類別角色{ 公共$名稱; } $foo = 新角色(); $foo->name = 'test1'; $bar = $foo; $bam = 新角色(); $bam->name = 'test2'; $test = array($foo, $bar, $bam);
print_r(array_unique($test, SORT_REGULAR));
print_r(array_unique($test, SORT_REGULAR));
Array ( [0] => Role Object ( [name] => test1 ) [2] => Role Object ( [name] => test2 ) )
陣列 ( [0] => 角色對象 ( [姓名] => 測試1 ) [2] => 角色對象 ( [姓名] => 測試2 ) )
注意:
需要注意的是,array_unique 與 SORT_REGULAR 使用“==”比較,而不是嚴格比較(“===”)。這意味著具有相同屬性但不同物件引用的物件仍將被視為重複。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3