Dalam PHP, kita selalunya perlu melakukan pelbagai operasi pada tatasusunan, seperti mencari, mengisih dan penyahduplikasian. Operasi deduplikasi adalah untuk mengalih keluar elemen pendua dalam tatasusunan. Dalam proses pembangunan sebenar, kita sering menghadapi situasi di mana kita perlu mengosongkan nombor yang sama Artikel ini memperkenalkan cara menggunakan tatasusunan PHP untuk mengalih keluar nombor pendua.
1. fungsi array_unique()
Terdapat fungsi array_unique() dalam PHP, yang boleh digunakan untuk mengalih keluar nilai pendua daripada tatasusunan dan mengembalikan tatasusunan baharu. Fungsi ini menggunakan perbandingan nilai, iaitu, hanya elemen dengan nilai yang sama dianggap pendua.
Berikut ialah contoh kod menggunakan array_unique() fungsi untuk mengalih keluar pendua:
<?php //定义一个包含相同数字的数组 $array = array(1, 1, 2, 3, 4, 4, 5, 5, 5); //去重 $new_array = array_unique($array); //输出去重后的数组 print_r($new_array); ?>
Melaksanakan kod di atas, anda boleh mendapatkan output:
Array ( [0] => 1 [2] => 2 [3] => 3 [4] => 4 [6] => 5 )
Kita boleh lihat bahawa nombor yang berulang telah dikosongkan, hanya meninggalkan nombor yang berbeza.
2. Gunakan gelung traversal untuk mengalih keluar pendua
Selain menggunakan fungsi array_unique(), kami juga boleh menggunakan loop traversal untuk mengalih keluar pendua. Pelaksanaan khusus adalah seperti berikut:
<?php //定义一个包含相同数字的数组 $array = array(1, 1, 2, 3, 4, 4, 5, 5, 5); //去重 $new_array = array(); foreach ($array as $value) { if (!in_array($value, $new_array)) { $new_array[] = $value; } } //输出去重后的数组 print_r($new_array); ?>
Dalam kod di atas, kami menggunakan tatasusunan kosong $new_array untuk menyimpan nombor unik. Kemudian gunakan gelung foreach untuk melintasi tatasusunan asal $array Jika elemen semasa tiada dalam $new_array, tambahkan elemen semasa pada tatasusunan $new_array.
Selepas melaksanakan kod di atas, anda boleh mendapatkan output yang sama seperti sebelumnya:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
3 Perbandingan prestasi
Dua kaedah untuk penyahduplikasian yang dinyatakan di atas, kemudian prestasinya Bagaimana ? Jom bandingkan.
Untuk membandingkan prestasi kedua-dua kaedah, kami menentukan tatasusunan yang mengandungi 100,000 nombor rawak, kemudian menggunakan kedua-dua kaedah untuk menyahgandakannya dan mengira masa pelaksanaan. Kodnya adalah seperti berikut:
<?php //1. 使用 array_unique() 函数 $array = array(); for ($i = 0; $i < 100000; $i++) { $array[] = rand(1, 100000); } $start_time = microtime(true); $new_array = array_unique($array); $end_time = microtime(true); echo '使用 array_unique() 函数执行时间:', $end_time - $start_time, ' 秒'; echo "\n"; //2. 使用循环遍历 $array = array(); for ($i = 0; $i < 100000; $i++) { $array[] = rand(1, 100000); } $start_time = microtime(true); $new_array = array(); foreach ($array as $value) { if (!in_array($value, $new_array)) { $new_array[] = $value; } } $end_time = microtime(true); echo '使用循环遍历执行时间:', $end_time - $start_time, ' 秒'; ?>
Melaksanakan kod di atas, anda boleh mendapatkan output berikut:
使用 array_unique() 函数执行时间:0.011376142501831 秒 使用循环遍历执行时间:15.46102309227 秒
Kita dapat melihat bahawa menggunakan fungsi array_unique() adalah lebih cekap.
4. Ringkasan
Dalam pembangunan sebenar, untuk meningkatkan kecekapan pelaksanaan program, kita harus cuba menggunakan fungsi terbina dalam yang disediakan oleh PHP dan bukannya menulis gelung dan kod lain diri kita untuk diproses. Untuk masalah mengalih keluar nombor yang sama dalam tatasusunan, menggunakan fungsi array_unique() terbina dalam PHP ialah kaedah yang paling mudah dan paling cekap, manakala menggunakan traversal gelung untuk mengalih keluar pendua akan membuang banyak masa dan sumber.
Atas ialah kandungan terperinci Bagaimana untuk mengosongkan nombor yang sama dalam tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!