Bagaimana untuk melaksanakan penghapusan tatasusunan dengan nilai kunci yang sama dalam PHP

PHPz
Lepaskan: 2023-04-17 17:14:07
asal
443 orang telah melayarinya

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.

  1. Fahami konsep asas tatasusunan 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);
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan operator [] untuk memulakan tatasusunan:

$numbers = [1, 2, 3, 4, 5];
Salin selepas log masuk

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.

  1. Hapuskan nilai kunci yang sama ​​dalam tatasusunan PHP

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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.

  1. Ringkasan

Dalam artikel ini, kami memperkenalkan operasi mengalih keluar nilai kunci yang sama​​​dari 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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan