Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan dalam php

Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan dalam php

PHPz
PHPzasal
2023-04-25 09:05:06579semak imbas

Sebagai bahasa skrip bahagian pelayan yang digunakan secara meluas, PHP selalunya perlu memproses tatasusunan Salah satu masalah yang lebih biasa ialah cara mengalih keluar nilai pendua daripada tatasusunan. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk menyelesaikan masalah ini.

1. Gunakan fungsi array_unique

Fungsi array_unique ialah fungsi terbina dalam PHP untuk mengalih keluar nilai pendua daripada tatasusunan. Anda hanya perlu menghantarnya tatasusunan yang perlu diduakan. Berikut ialah contoh kod:

$arr = array(1, 2, 3, 3, 4, 5, 5);
$unique_arr = array_unique($arr);
print_r($unique_arr);

Output kod di atas ialah:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 4
    [5] => 5
)

Seperti yang anda lihat, nilai pendua ​​​​dalam tatasusunan asal dialih keluar, dan hanya yang unik akan dikekalkan nilai. Perlu diingatkan bahawa fungsi array_unique tidak mengekalkan hubungan nilai kunci dalam tatasusunan asal secara lalai Oleh itu, jika anda perlu mengekalkan hubungan nilai kunci, anda boleh mengindeks semula tatasusunan bersama-sama dengan nilai_tatasusunan. fungsi.

2. Gunakan gelung untuk menyahduplikasi

Satu lagi kaedah penyahduplikasian yang biasa ialah menggelung melalui tatasusunan. Kaedah khusus adalah untuk membandingkan setiap elemen dalam tatasusunan dengan elemen di belakangnya Jika elemen pendua ditemui, elemen berikut dipadamkan melalui fungsi yang tidak ditetapkan. Berikut ialah contoh kod:

$arr = array(1, 2, 3, 3, 4, 5, 5);
for($i = 0; $i < count($arr); $i++)
{
    for($j = $i + 1; $j < count($arr); $j++)
    {
        if($arr[$i] == $arr[$j])
        {
            unset($arr[$j]);
        }
    }
}
print_r($arr);

Keluaran kod di atas adalah sama seperti menggunakan fungsi array_unique. Perlu diingatkan bahawa kaedah menggunakan penyahduplikasi gelung adalah tidak cekap kerana ia memerlukan berbilang sarang gelung dan kerumitan masa ialah O(n²), jadi ia tidak disyorkan untuk memproses sejumlah besar data.

3. Gunakan fungsi array_flip dan array_values ​​

Kaedah penyahduplikasian biasa yang lain ialah menggunakan nilai tatasusunan sebagai nilai kunci, dan kemudian indeks semula nilai kunci melalui nilai_tatasusunan fungsi. Kaedah khusus adalah untuk menukar nilai dan nilai utama dalam tatasusunan terlebih dahulu melalui fungsi array_flip, untuk memastikan bahawa nilai dalam tatasusunan adalah unik, dan kemudian mengindeks semula kunci nilai melalui fungsi array_values. Berikut ialah contoh kod:

$arr = array(1, 2, 3, 3, 4, 5, 5);
$arr = array_flip($arr);
$arr = array_values($arr);
print_r($arr);

Keluaran kod di atas adalah sama seperti menggunakan fungsi array_unique. Perlu diingatkan bahawa kerana dua fungsi digunakan untuk menyelesaikan operasi, ia mungkin tidak secekap menggunakan fungsi array_unique.

Ringkasnya, perkara di atas adalah beberapa cara biasa untuk mengalih keluar nilai pendua daripada tatasusunan dalam PHP. Bergantung pada situasi, memilih kaedah yang berbeza boleh meningkatkan kecekapan tatasusunan pemprosesan. Perlu diingatkan bahawa apabila memproses sejumlah besar data, kaedah yang lebih cekap harus dipilih untuk meningkatkan prestasi.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan 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