Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menggunakan `array_unique` untuk Mengalih keluar Objek Duplikat dalam PHP?

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

Linda Hamilton
Lepaskan: 2024-11-01 04:13:02
asal
884 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!

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