Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan deduplikasi tatasusunan dalam php
Dalam pembangunan web, penyahduplikasi tatasusunan ialah operasi biasa. Dalam PHP, pelbagai kaedah disediakan untuk mencapai deduplikasi tatasusunan. Artikel ini akan memperkenalkan 3 kaedah yang paling biasa digunakan.
Kaedah 1: Gunakan fungsi array_unique()
Fungsi array_unique() boleh mengalih keluar elemen pendua daripada tatasusunan dan mengembalikan tatasusunan nyahduplikasi baharu. Menggunakan fungsi ini adalah sangat mudah, anda hanya perlu lulus dalam tatasusunan yang perlu dinyahduplikasi sebagai parameter. Berikut ialah contoh kod untuk fungsi ini:
<?php $arr = array(1, 2, 2, 3, 4, 4, 5, 5); $new_arr = array_unique($arr); print_r($new_arr); ?>
Hasil keluaran:
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
Kaedah ini sangat mudah, tetapi ia tidak dapat mengekalkan nama kunci tatasusunan asal. Jika anda perlu mengekalkan nama kunci tatasusunan asal, anda boleh menggunakan kaedah yang diterangkan di bawah.
Kaedah 2: Gunakan gelung traversal
Menggunakan PHP untuk gelung atau gelung foreach, anda boleh melintasi keseluruhan tatasusunan dan mengalih keluar elemen pendua melalui pertimbangan. Berikut ialah contoh kod untuk menggunakan gelung foreach untuk melaksanakan penyahduplikasi tatasusunan:
<?php $arr = array(1, 2, 2, 3, 4, 4, 5, 5); $new_arr = array(); foreach ($arr as $value) { if (!in_array($value, $new_arr)) { $new_arr[] = $value; } } print_r($new_arr); ?>
Hasil keluaran:
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
Kaedah ini boleh mengekalkan nama kunci tatasusunan asal, tetapi memerlukan gelung traversal tatasusunan, jadi kecekapannya agak rendah.
Kaedah 3: Gunakan fungsi array_flip() dan array_keys()
Fungsi array_flip() boleh membalikkan nama kunci dan nilai kunci tatasusunan. Menggunakan fungsi ini, anda boleh menggunakan nilai tatasusunan asal sebagai nama kunci dan nama kunci sebagai nilai untuk menjana tatasusunan baharu. Kemudian gunakan fungsi array_keys() untuk mendapatkan nama kunci tatasusunan baharu, dengan itu mendapatkan tatasusunan pendua. Berikut ialah kod sampel:
<?php $arr = array(1, 2, 2, 3, 4, 4, 5, 5); $tmp_arr = array_flip($arr); $new_arr = array_keys($tmp_arr); print_r($new_arr); ?>
Hasil keluaran:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Kaedah ini boleh mengekalkan nama utama tatasusunan asal dan lebih cekap, tetapi ia memerlukan penggunaan dua fungsi untuk membandingkan.
Ringkasan
Dalam pembangunan sebenar, pilih kaedah untuk melaksanakan deduplikasi tatasusunan mengikut situasi tertentu. Jika anda tidak perlu mengekalkan nama kunci tatasusunan asal, anda boleh menggunakan fungsi array_unique() yang paling mudah jika anda perlu mengekalkan nama kunci tatasusunan asal, anda perlu menggunakan loop traversal atau array_flip() dan array_keys; () fungsi.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan deduplikasi tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!