Dalam bahasa pengaturcaraan PHP, tatasusunan ialah jenis data yang sangat biasa digunakan. Ia boleh menyimpan berbilang elemen data dan mengakses setiap elemen melalui kunci. Semasa proses pembangunan, kita sering menghadapi situasi di mana kita perlu menghapuskan nilai dengan kunci yang sama dalam tatasusunan. Artikel ini akan memperkenalkan cara melaksanakan operasi ini dalam PHP.
Dalam PHP, tatasusunan ialah koleksi tersusun data, yang boleh mengandungi jenis data yang berbeza, seperti integer, Titik terapung jenis, jenis rentetan, jenis Boolean, dsb. Unsur tatasusunan boleh diakses menggunakan nilai utamanya. Dalam PHP, tatasusunan boleh diisytiharkan dan dimulakan menggunakan pelbagai bentuk, seperti menggunakan fungsi array()
, atau menggunakan operator []
untuk mencipta tatasusunan.
Sebagai contoh, dalam kod berikut, kita boleh mencipta tatasusunan dengan 5 elemen dan memulakan setiap elemen.
$numbers = array(1, 2, 3, 4, 5);
Sebagai alternatif, anda boleh menggunakan operator []
untuk memulakan tatasusunan:
$numbers = [1, 2, 3, 4, 5];
Dalam kedua-dua kes, pembolehubah $numbers
akan menjadi tatasusunan yang mengandungi 5 Tatasusunan elemen, setiap satunya boleh diakses dengan nilai utama. Sebagai contoh, kita boleh menggunakan $numbers[0]
untuk mengakses elemen pertama.
Biasanya, semasa menulis program PHP, kita perlu memproses pelbagai data, seperti menanyakan data daripada pangkalan data , daripada fail Baca data daripada borang web atau terima data daripada borang web. Dalam kes ini, kita sering menghadapi situasi di mana kita perlu menghapuskan nilai dengan nilai kunci yang sama dalam tatasusunan PHP.
Nasib baik, terdapat banyak cara untuk melakukan ini dalam PHP. Tiga kaedah yang paling biasa digunakan disenaraikan di bawah:
2.1 Gunakan fungsi array_unique untuk mengalih keluar pendua
PHP mempunyai array_unique fungsi terbina dalam, yang boleh mengalih keluar nilai pendua dalam tatasusunan, contohnya:
$numbers = array(1, 2, 3, 4, 5, 5, 4); $uniqueNumbers = array_unique($numbers);
Dalam contoh di atas, kami mentakrifkan tatasusunan $nombor yang mengandungi berbilang nilai kunci yang sama dan menggunakan fungsi array_unique untuk menyahgandakannya. Hasilnya ialah nilai dengan nilai kunci yang sama akan dihapuskan. Akhirnya, $uniqueNumbers akan menjadi tatasusunan baharu yang mengandungi nilai kunci yang berbeza.
2.2 Gunakan fungsi array_filter untuk menapis nilai kunci
Fungsi array_filter digunakan untuk menapis elemen dalam tatasusunan Ia menerima tatasusunan yang mengandungi elemen dan mengembalikan tatasusunan baharu yang hanya mengandungi Elemen tersebut memenuhi syarat yang ditetapkan.
Sebagai contoh, dalam kod berikut, kami mentakrifkan tatasusunan $nombor yang mengandungi berbilang nilai kunci yang sama dan menggunakan fungsi array_filter untuk menapis nilai kunci pendua.
$numbers = array(1, 2, 3, 4, 5, 5, 4); $uniqueNumbers = array_filter($numbers, function ($value, $key) use ($numbers) { return array_keys($numbers, $value)[0] === $key; }, ARRAY_FILTER_USE_BOTH);
Dalam kod di atas, kami menggunakan fungsi tanpa nama dan menghantar dalam tatasusunan $numbers dan nilai kunci semasa sebagai parameter. Dalam badan fungsi, kami menggunakan fungsi array_keys untuk mendapatkan kejadian pertama nilai kunci semasa dalam array $numbers dan membandingkannya dengan nilai kunci semasa. Benar akan dikembalikan hanya jika dua nilai utama adalah sama. Tatasusunan baharu akhirnya dikembalikan ialah tatasusunan yang mengandungi hanya nilai kunci tanpa pendua.
2.3 Gunakan foreach loop traversal untuk mencapai deduplikasi
Kita boleh menggunakan foreach loop untuk melintasi tatasusunan dan menggunakan pembolehubah sementara untuk menyimpan nilai kunci bukan pendua. Untuk setiap elemen, kami menyemak sama ada ia telah muncul dalam pembolehubah sementara. Jika ya, ia dialih keluar daripada tatasusunan asal, jika tidak, ia ditambah kepada pembolehubah sementara.
Berikut ialah contoh kod:
$numbers = array(1, 2, 3, 4, 5, 5, 4); $tempNumbers = array(); foreach ($numbers as $key => $value) { if (in_array($value, $tempNumbers)) { unset($numbers[$key]); } else { $tempNumbers[] = $value; } }
Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan sementara $tempNumbers dan menggunakan gelung foreach untuk melelaran ke atas tatasusunan asal $numbers. Untuk setiap elemen, kami menyemak sama ada ia sudah muncul dalam tatasusunan sementara $tempNumbers. Jika ya, gunakan fungsi unset untuk mengeluarkannya daripada tatasusunan asal $numbers jika tidak, tambahkannya pada tatasusunan sementara $tempNumbers; Akhirnya, tatasusunan $numbers ialah tatasusunan tanpa nilai kunci pendua.
Dalam artikel ini, kami memperkenalkan operasi mengalih keluar nilai kunci yang samadari tatasusunan dalam bahasa pengaturcaraan PHP. Dengan menggunakan fungsi PHP terbina dalam array_unique, array_filter dan gelung foreach, kami boleh menghapuskan nilai kunci pendua dalam tatasusunan dengan mudah. Tidak kira kaedah yang digunakan, ia boleh membantu pembangun memproses data dalam tatasusunan PHP dengan lebih cekap.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penghapusan tatasusunan dengan nilai kunci yang sama dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!