Bagaimana untuk mengalih keluar Objek Duplikat dari Array dalam PHP?

Linda Hamilton
Lepaskan: 2024-11-04 08:49:02
asal
392 orang telah melayarinya

How to Remove Duplicate Objects from an Array in PHP?

Cara Mengeluarkan Objek Duplikat daripada Tatasusunan dalam PHP

Fungsi array_unique() boleh mengenal pasti dan menghapuskan elemen pendua daripada tatasusunan. Walau bagaimanapun, fungsi ini mungkin tidak kelihatan serta-merta untuk tatasusunan yang mengandungi objek. Untuk mengalih keluar objek pendua dengan berkesan, pengubahsuaian tertentu diperlukan.

Penyelesaian Menggunakan SORT_REGULAR

Untuk membolehkan array_unique() berfungsi dengan betul dengan objek, nyatakan bendera SORT_REGULAR sebagai yang kedua parameter:

<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>
Salin selepas log masuk

Output:

Array (
    [0] => MyClass Object
        (
            [prop] => test1
        )

    [2] => MyClass Object
        (
            [prop] => test2
        )
)
Salin selepas log masuk

Penjelasan

Dengan menggunakan SORT_REGULAR, fungsi array_unique() pada dasarnya membandingkan sifat prop bagi setiap objek, menganggap objek dengan nilai sifat yang sama sebagai pendua.

Awas

Walaupun kaedah ini berkesan mengalih keluar objek pendua, adalah penting untuk ambil perhatian bahawa ia bergantung pada == perbandingan dan bukannya perbandingan === yang lebih ketat. Ini bermakna objek dengan identiti yang berbeza tetapi sifat yang sama masih akan dianggap sebagai pendua.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Objek Duplikat dari Array 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!