Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memadam elemen yang sama dalam tatasusunan php

Bagaimana untuk memadam elemen yang sama dalam tatasusunan php

PHPz
PHPzasal
2023-04-25 09:06:13423semak imbas

Dalam PHP, jika unsur yang sama wujud dalam tatasusunan, kita mungkin perlu memadamkannya. Soalan ini nampak mudah, tetapi ia sebenarnya melibatkan beberapa butiran teknikal. Mari kita bincangkan cara memadam elemen yang sama dalam tatasusunan PHP.

Kaedah 1: Gunakan fungsi array_unique

PHP menyediakan fungsi array_unique(), yang boleh mengalih keluar elemen pendua daripada tatasusunan dan menyimpan hanya satu daripadanya. Fungsi ini sangat mudah, kita hanya perlu menghantar tatasusunan yang perlu dinyahduplikasi sebagai parameter kepadanya.

Kod contoh:

$array = array('a', 'b', 'c', 'a', 'b');
$unique_array = array_unique($array);
print_r($unique_array);

Hasil keluaran:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

Seperti yang dapat dilihat daripada kod di atas, fungsi array_unique() hanya mengekalkan satu-satunya elemen unik dalam elemen tatasusunan asal. Tetapi ia sebenarnya tidak memadamkan elemen pendua dalam tatasusunan, tetapi mengekalkan semua elemen pendua. Jika kita benar-benar ingin mengalih keluar elemen pendua, kita perlu menggunakannya bersama-sama dengan fungsi unset().

Kaedah 2: Gunakan gelung dan fungsi nyahtetap

Kita boleh menggunakan gelung untuk melintasi setiap elemen dalam tatasusunan dan membandingkannya untuk menentukan sama ada terdapat unsur pendua dan memadamkannya jika wujud.

Kod sampel:

$array = array('a', 'b', 'c', 'a', 'b');
for($i = 0; $i < count($array); $i++){
    for($j = $i + 1; $j < count($array); $j++){
        if($array[$i] == $array[$j]){
            unset($array[$j]);
        }
    }
}
print_r($array);

Hasil keluaran:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

Seperti yang dapat dilihat daripada kod di atas, kami menggunakan dua gelung untuk melintasi semua item dalam elemen tatasusunan, dan kemudian tentukan sama ada terdapat unsur pendua dan padamkannya melalui fungsi unset(). Hasil keluaran akhir ialah tatasusunan selepas penyahduplikasian.

Perlu diambil perhatian bahawa apabila menggunakan fungsi unset(), jika kita memadamkan terus elemen dalam tatasusunan, indeks tatasusunan akan berubah. Untuk mengelakkan masalah yang disebabkan oleh perubahan indeks, kita boleh menggunakan fungsi array_values() untuk menyusun semula indeks tatasusunan.

$array = array('a', 'b', 'c', 'a', 'b');
for($i = 0; $i < count($array); $i++){
    for($j = $i + 1; $j < count($array); $j++){
        if($array[$i] == $array[$j]){
            unset($array[$j]);
        }
    }
}
$array = array_values($array);
print_r($array);

Hasil keluaran:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

Kesimpulan

Di atas ialah dua kaedah untuk memadamkan elemen pendua daripada tatasusunan dalam PHP. Dari sudut kecekapan, menggunakan fungsi array_unique() adalah lebih cekap, tetapi perlu diperhatikan bahawa ia mengembalikan tatasusunan baharu dan bukannya secara langsung memadam tatasusunan asal kaedah menggunakan gelung yang digabungkan dengan fungsi unset() ialah sedikit kurang cekap, tetapi ia sebenarnya boleh memadam Elemen berulang juga mengelakkan perubahan dalam indeks tatasusunan. Bergantung pada keperluan khusus dan senario sebenar, kita boleh memilih kaedah yang sesuai untuk mengendalikan elemen berulang dalam tatasusunan PHP.

Atas ialah kandungan terperinci Bagaimana untuk memadam elemen yang sama dalam tatasusunan 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