ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列から重複オブジェクトを削除するにはどうすればよいですか?

PHP で配列から重複オブジェクトを削除するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 08:49:02460ブラウズ

How to Remove Duplicate Objects from an Array in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。