Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyemak sama ada terdapat pendua dalam tatasusunan dalam php
Dalam PHP, menyemak tatasusunan untuk nilai pendua adalah tugas asas. Dalam artikel ini, kami akan meneroka cara menyemak sama ada terdapat nilai pendua dalam tatasusunan dalam PHP dan menyediakan beberapa penyelesaian.
1. Gunakan fungsi terbina dalam PHP
PHP mempunyai banyak fungsi terbina dalam yang berguna yang boleh menyelesaikan masalah tatasusunan dalam PHP. Berikut ialah satu fungsi sedemikian:
array_unique() — Alih keluar pendua daripada tatasusunan
Jika matlamat anda adalah untuk menghapuskan nilai pendua sepenuhnya, kaedah ini adalah kaedah yang sangat mudah. Ia mengembalikan tatasusunan baharu yang mengandungi hanya nilai unik. Jika terdapat masalah pengisihan, anda boleh menggunakan fungsi sort() untuk mengisih.
Contohnya:
$array = array(1, 2, 2, 3, 4, 4, 4, 5); $array = array_unique($array); print_r($array);
Output:
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [7] => 5 )
Seperti yang ditunjukkan di atas, kami hanya menghantar tatasusunan sebelumnya ke dalam fungsi array_unique()
, dan untuk perkara yang sama Nilai dinyahduplikasi. Tetapi kaedah ini hanya sesuai untuk menghapuskan nilai pendua sepenuhnya.
2. Gunakan gelung PHP
Jika anda perlu mencari semua nilai pendua dalam tatasusunan, mungkin pilihan terbaik ialah menggunakan gelung. Berikut ialah cara untuk mencari nilai pendua menggunakan gelung dalam PHP:
$array = array(2, 5, 6, 2, 8, 5, 1); $result_array = array(); foreach ($array as $val) { $result_array[$val] = isset($result_array[$val]) ? ++$result_array[$val] : 1; } foreach ($result_array as $key => $val) { if ($val > 1) { echo "{$key} 重复了{$val}次 <br>"; } }
Output:
2 重复了2次 5 重复了2次
Dalam kod di atas, kami menggunakan gelung untuk mengulangi tatasusunan dan tambah setiap elemen digunakan sebagai kunci dalam tatasusunan hasil. Jika kunci diambil alih, maka ia ditambah satu kunci pada satu masa. Jika mana-mana kunci diulang berkali-kali, maka kita boleh lulus gelung lain untuk mengeluarkan elemen ini bersama-sama dengan bilangan kejadian.
3. Gunakan fungsi PHP count()
Kadangkala, kita perlu menyemak dengan cepat sama ada terdapat nilai pendua dalam tatasusunan tanpa mengalih keluar nilai pendua. Dalam kes ini, kita boleh menggunakan fungsi count() PHP.
Berikut ialah contoh pendekatan ini:
$array = array(2, 5, 6, 2, 8, 5, 1); if (count($array) === count(array_unique($array))) { echo "没有重复值"; } else { echo "有重复值"; }
Output:
有重复值
Dalam kod di atas, kami menggunakan fungsi array_unique() untuk mengalih keluar pendua, Kemudian gunakan fungsi count() untuk menyemak sama ada dua tatasusunan adalah saiz yang sama. Jika ia adalah sama dan tiada nilai pendua dalam tatasusunan, maka nilai count($array) === count(array_unique($array))
adalah benar.
Kesimpulan
Menyemak sama ada terdapat nilai pendua dalam tatasusunan boleh menjadi tugas biasa dalam PHP. Dalam artikel ini, kami telah membincangkan tiga cara untuk menyemak sama ada terdapat nilai pendua dalam tatasusunan PHP:
Selain itu, kesan serupa boleh dicapai menggunakan kaedah pengumpulan, menggunakan kelas SplObjectStorage terbina dalam PHP. Akhir sekali, sekeping kod yang menggunakan kelas SplObjectStorage untuk menyemak nilai pendua disediakan untuk rujukan anda:
$array = array(2, 5, 6, 2, 8, 5, 1); $splObj = new SplObjectStorage(); foreach ($array as $value) { $splObj->attach($value); } if (count($array) === $splObj->count()) { echo "没有重复值"; } else { echo "有重复值"; }
Di atas ialah kaedah menggunakan PHP untuk menyemak sama ada terdapat nilai pendua dalam tatasusunan saya harap ia akan membantu anda.
Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada terdapat pendua dalam tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!