Rumah >pembangunan bahagian belakang >tutorial php >Cara terbaik untuk menyahduplikasi tatasusunan dan menyimpan nama kunci dalam PHP
Terdapat dua cara terbaik untuk menyahduplikasi tatasusunan dan menyimpan nama kunci dalam PHP: array_unique(): Ia boleh menyahganda tetapi tidak mengekalkan nama kunci dan mengindeks semula tatasusunan. Fungsi tersuai array_unique_preserve_keys(): Gunakan nilai cincang untuk membandingkan nilai, yang boleh mengalih keluar pendua dan mengekalkan nama kunci.
Cara terbaik untuk menyahduplikasi tatasusunan sambil mengekalkan nama kunci dalam PHP
Dalam PHP, penyahduplikasi tatasusunan bermaksud mengalih keluar nilai pendua sambil mengekalkan nama kunci tidak berubah. Ini berguna apabila bekerja dengan data daripada sumber berbeza yang mungkin mengandungi unsur pendua, seperti daripada berbilang penyerahan borang atau pertanyaan pangkalan data.
Kaedah 1: array_unique()
array_unique() fungsi ialah fungsi PHP terbina dalam yang digunakan untuk menyahduplikasi tatasusunan. Ia menerima tatasusunan sebagai input dan mengembalikan tatasusunan baharu di mana nilai pendua telah dialih keluar. Walau bagaimanapun, array_unique() tidak mengekalkan nama kunci, tetapi mengindeks semula tatasusunan, bermula pada 0.
Contoh:
$arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a']; $result = array_unique($arr); print_r($result); // 输出:['a', 'b', 'c', 'd', 'e']
Kaedah 2: Fungsi tersuai
Untuk mengekalkan nama kunci, kita boleh menulis fungsi tersuai untuk menyahduplikasi tatasusunan. Kaedah ini menggunakan tatasusunan bersekutu dan membandingkan cincang setiap nilai untuk menentukan sama ada ia adalah pendua.
Contoh:
function array_unique_preserve_keys($arr) { $hash = []; $unique_arr = []; foreach ($arr as $key => $value) { $hash_value = md5($value); if (!isset($hash[$hash_value])) { $hash[$hash_value] = 1; $unique_arr[$key] = $value; } } return $unique_arr; } $arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a']; $result = array_unique_preserve_keys($arr); print_r($result); // 输出:['a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e']
Contoh praktikal:
Katakan kita mempunyai tatasusunan daripada penyerahan borang yang mengandungi nama pengguna pendua dan alamat e-mel. Dengan menyahgandakannya menggunakan fungsi array_unique_preserve_keys(), kami boleh mengalih keluar rekod pendua sambil mengekalkan nama pengguna pengguna.
rreeeeAtas ialah kandungan terperinci Cara terbaik untuk menyahduplikasi tatasusunan dan menyimpan nama kunci dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!