


Bagaimana untuk menyemak sama ada terdapat pendua dalam tatasusunan dalam php
Apr 26, 2023 am 10:23 AMDalam 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:
- Menggunakan array_unique() fungsi terbina dalam PHP, anda boleh mengalih keluar nilai pendua daripada tatasusunan.
- Menggunakan gelung PHP, anda boleh mencari semua nilai pendua.
- Gunakan fungsi PHP count() untuk menyemak dengan cepat sama ada terdapat nilai pendua dalam tatasusunan.
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!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah piawaian pengekodan PHP terkini dan amalan terbaik?

Bagaimana saya bekerja dengan sambungan php dan pecl?

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP?

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi?

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama?

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP?

Apakah amalan terbaik untuk deduplikasi tatasusunan php
