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!