Rumah >pembangunan bahagian belakang >masalah PHP >php padam elemen yang sama

php padam elemen yang sama

PHPz
PHPzasal
2023-05-06 13:21:10534semak imbas

Apabila melakukan pemprosesan data, kadangkala elemen yang sama perlu dipadamkan dalam tatasusunan. Jika anda menggunakan bahasa PHP, maka anda boleh menggunakan beberapa fungsi dan helah terbina dalam untuk memadamkan elemen yang sama daripada tatasusunan. Artikel ini akan memperkenalkan teknik dan fungsi ini kepada anda, serta beberapa langkah berjaga-jaga.

1. Gunakan fungsi array_unique()

PHP menyediakan fungsi yang dipanggil array_unique(), yang boleh digunakan untuk memadamkan elemen yang sama dalam tatasusunan. Fungsi ini mengembalikan tatasusunan baharu dengan semua elemen pendua dialih keluar. Fungsi ini sangat mudah dan hanya memerlukan satu baris kod untuk menyelesaikan tugas penyahduplikasian data.

Kod sampel:

$arr = array('a', 'b', 'c', 'a', 'd', 'e', 'b');
$arr = array_unique($arr);
print_r($arr);

Hasil keluaran:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [4] => d
    [5] => e
)

2. Gunakan gelung dan pernyataan bersyarat

Jika anda tidak mahu menggunakan array_unique( ) fungsi, anda juga boleh Anda boleh menggunakan gelung dan pernyataan bersyarat untuk mengalih keluar elemen pendua secara manual daripada tatasusunan. Langkah-langkah khusus adalah seperti berikut:

  • Tentukan tatasusunan baharu yang kosong $newArr
  • Gelung melalui tatasusunan asal $arr dan gunakan setiap elemen untuk mencari sama ada unsur yang sama wujud dalam tatasusunan baru $newArr , jika ia tidak wujud, tambahkan elemen pada tatasusunan baharu; mengandungi elemen pendua tatasusunan baharu.
  • Kod contoh:
  • $arr = array('a', 'b', 'c', 'a', 'd', 'e', 'b');
    $newArr = array();
    foreach ($arr as $key => $value) {
        if (!in_array($value, $newArr)) {
            $newArr[] = $value;
        }
    }
    print_r($newArr);
  • Hasil keluaran:
Array
(
    [0] => a
    [1] => b
    [2] => c
    [4] => d
    [5] => e
)

3 Gunakan fungsi array_flip() dan fungsi array_keys()

dalam PHP. array_flip() fungsi menukar kunci dan nilai tatasusunan sambil mengalih keluar elemen pendua. Kita boleh menukar kunci dan nilai tatasusunan dan kemudian menggunakan fungsi array_keys() untuk mendapatkan semua nilai kunci untuk mencapai kesan pemadaman elemen pendua.

Kod sampel:

$arr = array('a', 'b', 'c', 'a', 'd', 'e', 'b');
$arr = array_flip($arr);
$arr = array_keys($arr);
print_r($arr);

Hasil keluaran:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
)

Perkara yang perlu diambil perhatian:

Jika ia wujud dalam tatasusunan, ia akan dirawat sebagai Nilai yang sama seperti rentetan kosong, 0 dan null juga dipadamkan.

Jika anda menggunakan tatasusunan dengan nama kunci, nama kunci tidak disimpan apabila menggunakan fungsi array_unique(). Jika anda ingin mengekalkan nama kunci, anda perlu menggunakan pemadaman manual
  • Apabila elemen dalam tatasusunan adalah objek, objek yang berbeza tidak boleh dibandingkan, jadi apabila terdapat berbilang objek dalam tatasusunan, mereka tidak Akan dianggap sebagai unsur pendua.
  • Untuk tatasusunan besar dan tatasusunan berbilang dimensi, memadamkan elemen pendua dalam tatasusunan mungkin memakan banyak masa dan ingatan Anda perlu memberi perhatian kepada prestasi dan kecekapan program.
  • Ringkasan:
  • PHP menyediakan beberapa fungsi terbina dalam yang mudah dan helah untuk memadamkan elemen yang sama daripada tatasusunan. Anda boleh memilih untuk menggunakan fungsi array_unique() , gelung dan pernyataan bersyarat untuk mencapai ini. Kaedah yang berbeza mempunyai kelebihan mereka sendiri dan senario yang boleh digunakan, dan anda perlu memilih mengikut situasi sebenar. Tidak kira kaedah yang anda pilih, beri perhatian kepada prestasi dan kecekapan program dan gunakan teknik dan fungsi yang munasabah untuk menjadikan program lebih ringkas dan cekap.

Atas ialah kandungan terperinci php padam elemen yang sama. 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