Rumah >pembangunan bahagian belakang >tutorial php >Cara terbaik untuk menyahduplikasi tatasusunan dan menyimpan nama kunci dalam PHP

Cara terbaik untuk menyahduplikasi tatasusunan dan menyimpan nama kunci dalam PHP

PHPz
PHPzasal
2024-05-01 13:00:021079semak imbas

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.

PHP 中对数组去重并保持键名的最佳方法

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.

rreeee

Atas 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!

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