Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membuang pendua dalam php tanpa fungsi tatasusunan

Bagaimana untuk membuang pendua dalam php tanpa fungsi tatasusunan

PHPz
PHPzasal
2023-04-18 15:20:40438semak imbas

Bahasa PHP ialah bahasa pengaturcaraan yang sangat popular hari ini. Fungsi fungsi tatasusunan yang berkuasa telah dikuasai dan digunakan oleh semakin ramai pengaturcara semasa proses pembangunan. Walau bagaimanapun, pengaturcara PHP muda mungkin tidak tahu bahawa bahasa PHP tidak memerlukan penggunaan fungsi tatasusunan untuk melaksanakan operasi penyahduplikasian tatasusunan. Dalam artikel ini, kami akan meneroka pelbagai kaedah penyahduplikasi tatasusunan dalam bahasa PHP, dan memahami serta menguasai prinsip pelaksanaannya.

Penyahduplikasi tatasusunan ialah operasi data asas yang boleh mengalih keluar data pendua dengan berkesan dan menjimatkan ruang storan dan sumber pengkomputeran untuk pembangun. Dalam PHP, kami biasanya menggunakan fungsi tatasusunan seperti array_unique untuk melaksanakan operasi deduplikasi, tetapi sebenarnya, beberapa ciri bahasa yang terbina dalam bahasa PHP boleh digunakan untuk mencapai fungsi yang sama, dan kaedah ini lebih cekap dan fleksibel daripada menggunakan fungsi tatasusunan untuk mengalih keluar pendua.

Kaedah 1: Gunakan prinsip pertukaran nilai kunci untuk mencapai penyahduplikasi tatasusunan

Dalam PHP, tatasusunan adalah dalam bentuk pasangan nilai kunci, dan nilai yang sepadan boleh diakses terus melalui nama kunci (Kunci) (Nilai), dan nama kunci boleh berupa sebarang integer atau rentetan. Oleh itu, kita boleh menggunakan ciri ini untuk mencapai tujuan penyahduplikasian dengan menukar nilai dan nama kunci tatasusunan. Kaedah pelaksanaan khusus adalah seperti berikut:

<?php
//需要去重的数组
$origin = array(1, 2, 3, 3, 4, 4, 5);

//数组去重核心代码
foreach ($origin as $key => $val) {
    $tmp[$val] = 1;
}
$unique = array_keys($tmp);

//输出结果
print_r($unique);
?>

Dalam kod ini, kita mula-mula menggunakan gelung foreach untuk melintasi tatasusunan, menggunakan nilai yang sepadan sebagai nama kunci dan 1 sebagai nilai yang sepadan. Oleh kerana nama kunci adalah unik, nilai yang berbeza akan diberikan kepada nama kunci yang berbeza, dan nilai yang sama akan menimpa nama kunci asal, dengan itu mencapai tujuan penyahduplikasian. Akhir sekali, semua nama kunci diekstrak melalui fungsi array_keys dan dibentuk menjadi tatasusunan baharu.

Kaedah 2: Gunakan fungsi array_flip untuk menukar nama dan nilai utama untuk mencapai penyahduplikasi tatasusunan

Berbanding dengan kaedah 1 di atas, kaedah penyahduplikasian ini lebih ringkas. Kita boleh menggunakan array_flip fungsi tatasusunan terbina dalam PHP untuk menukar nama utama dan nilai tatasusunan asal untuk mencapai kesan penyahduplikasian.

<?php
//需要去重的数组
$origin = array(1, 2, 3, 3, 4, 4, 5);

//数组去重核心代码
$unique = array_keys(array_flip($origin));

//输出结果
print_r($unique);
?>

Dalam kod ini, kami mula-mula menggunakan fungsi array_flip untuk menukar nama kunci dan kedudukan nilai tatasusunan asal, supaya nilai berulang menjadi nama kunci berulang, dan nama kunci mestilah unik , sekali gus mencapai kesan penyahduplikasian. Akhir sekali, kami menggunakan fungsi array_keys sekali lagi untuk mengekstrak semua nama kunci dan menjana tatasusunan nyahduplikasi baharu.

Kaedah 3: Gunakan fungsi array_diff untuk melaksanakan operasi perbezaan tatasusunan

Kaedah penyahduplikasian ini berbeza daripada dua kaedah pertama ia menyahduplikasi dengan mengira perbezaan tatasusunan. Kaedah pelaksanaan khusus adalah seperti berikut:

<?php
//需要去重的数组
$origin = array(1, 2, 3, 3, 4, 4, 5);

//数组去重核心代码
$unique = array_diff($origin, array_diff_assoc($origin, array_unique($origin)));

//输出结果
print_r($unique);
?>

Dalam kod ini, kita mula-mula menggunakan fungsi array_unique untuk mendapatkan tatasusunan yang dinyahduplikasi. Kemudian, kami menggunakan fungsi array_diff_assoc untuk membandingkan tatasusunan asal dan tatasusunan pendua, dan dapatkan bahagian yang nama kunci dan nilai kuncinya berbeza, iaitu bahagian pendua. Akhir sekali, kami menggunakan fungsi array_diff sekali lagi untuk mengalih keluar bahagian pendua dan mendapatkan tatasusunan pendua akhir.

Ringkasnya, kami telah membincangkan tiga kaedah penyahduplikasi tatasusunan terbina dalam dalam bahasa PHP. Semua kaedah mempunyai kelebihan tersendiri dan senario yang boleh digunakan Penguasaan fleksibel kaedah ini boleh menjimatkan masa kita, menjimatkan sumber dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Oleh itu, pengaturcara harus memilih kaedah penyahduplikasian yang berbeza mengikut situasi tertentu dalam pembangunan harian untuk memastikan operasi kod yang cekap.

Atas ialah kandungan terperinci Bagaimana untuk membuang pendua dalam php tanpa fungsi tatasusunan. 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