ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列から重複オブジェクトを削除するにはどうすればよいですか?
PHP で配列から重複オブジェクトを削除する方法
array_unique() 関数は、配列から重複要素を識別して削除できます。ただし、オブジェクトを含む配列の場合、この機能はすぐには分からない場合があります。重複したオブジェクトを効果的に削除するには、特定の変更が必要です。
SORT_REGULAR を使用した解決策
array_unique() がオブジェクトで正しく動作できるようにするには、SORT_REGULAR フラグを 2 番目に指定します。パラメータ:
<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() 関数は基本的に次の prop プロパティを比較します。各オブジェクトは、同じプロパティ値を持つオブジェクトを重複として扱います。
注意
このメソッドは重複オブジェクトを効果的に削除しますが、== に依存していることに注意することが重要です。より厳密な === 比較ではなく比較します。これは、ID は異なるがプロパティが同一のオブジェクトは引き続き重複とみなされます。
以上がPHP で配列から重複オブジェクトを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。