Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar Objek Duplikat dari Array dalam PHP?

Bagaimana untuk mengalih keluar Objek Duplikat dari Array dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-11-04 08:49:02393semak imbas

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>

Output:

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

    [2] => MyClass Object
        (
            [prop] => test2
        )
)

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!

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