Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Linda Hamiltonasal
2024-11-01 04:13:02691semak imbas

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>

Untuk mengalih keluar pendua menggunakan array_unique:

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

Output:

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

    [2] => Role Object
        (
            [name] => test2
        )
)

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:
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