Bagaimanakah Saya Boleh Menggunakan `array_unique` untuk Mengalih keluar Objek Duplikat dalam PHP?

Linda Hamilton
Lepaskan: 2024-11-01 04:13:02
asal
690 orang telah melayarinya

How Can I Use `array_unique` to Remove Duplicate Objects in PHP?

Objek Unik dengan array_unique

Dalam PHP, fungsi array_unique membantu dalam menghapuskan nilai pendua daripada tatasusunan. Walau bagaimanapun, apabila bekerja dengan tatasusunan yang mengandungi objek, fungsi ini mungkin kelihatan tidak berfungsi seperti yang diharapkan.

Masukkan Penyelesaian:

Untuk tatasusunan objek, anda boleh menggunakan array_unique dengan bendera perbandingan SORT_REGULAR. Bendera ini mengarahkan fungsi untuk membandingkan objek mengikut sifatnya dan bukannya rujukan objeknya.

Pelaksanaan:

Pertimbangkan tatasusunan objek Peranan:

<code class="php">class Role {
    public $name;
}

$foo = new Role();
$foo->name = 'test1';

$bar = $foo;

$bam = new Role();
$bam->name = 'test2';

$test = array($foo, $bar, $bam);</code>
Salin selepas log masuk

Untuk mengalih keluar pendua menggunakan array_unique:

<code class="php">print_r(array_unique($test, SORT_REGULAR));</code>
Salin selepas log masuk

Output:

Array (
    [0] => Role Object
        (
            [name] => test1
        )

    [2] => Role Object
        (
            [name] => test2
        )
)
Salin selepas log masuk

Awas:

Adalah penting untuk ambil perhatian bahawa array_unique dengan SORT_REGULAR menggunakan perbandingan "==", bukan perbandingan ketat ("==="). Ini bermakna objek yang mempunyai sifat yang sama tetapi rujukan objek yang berbeza akan tetap dianggap pendua.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan `array_unique` untuk Mengalih keluar Objek Duplikat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!