Bagaimanakah Saya Boleh Mengira Kejadian Pendua dengan Cekap dalam Tatasusunan?

Mary-Kate Olsen
Lepaskan: 2024-10-27 04:39:02
asal
498 orang telah melayarinya

How Can I Efficiently Count Duplicate Occurrences in an Array?

Mengira Kejadian Pendua dalam Tatasusunan

Dalam pengaturcaraan, adalah berguna untuk mengira bilangan kali elemen pendua muncul dalam tatasusunan. Untuk melakukan ini, kita perlu mencipta penyelesaian yang cekap yang menangkap data yang dikehendaki dengan tepat.

Memahami Kod Asal

Kod yang disediakan cuba mencapai ini dengan mengulang melalui tatasusunan beberapa kali dan mengekalkan tatasusunan $previous untuk menyimpan elemen unik dan kejadiannya. Walau bagaimanapun, ia mempunyai beberapa isu:

  • Gelung bersarang membawa kepada lelaran yang tidak perlu dan prestasi menurun.
  • Logik untuk menentukan sama ada elemen unik atau pendua adalah cacat.
  • Ia tidak mengemas kini atau mengalih keluar elemen dengan betul daripada tatasusunan $previous.

Penyelesaian Cekap

Penyelesaian yang lebih mudah dan cekap ialah dengan gunakan fungsi array_count_values ​​terbina dalam, yang mengira kejadian setiap elemen unik dalam tatasusunan. Fungsi ini mengembalikan tatasusunan bersekutu dengan kuncinya ialah elemen unik dan nilainya ialah kiraan masing-masing.

$array = [12, 43, 66, 21, 56, 43, 43, 78, 78, 100, 43, 43, 43, 21];
$vals = array_count_values($array);
Salin selepas log masuk

Coretan kod ini menyimpan kiraan setiap elemen unik dalam tatasusunan $vals. Outputnya ialah:

No. of NON Duplicate Items: 7

Array
(
    [12] => 1
    [43] => 6
    [66] => 1
    [21] => 2
    [56] => 1
    [78] => 2
    [100] => 1
)
Salin selepas log masuk

Hasil ini memberikan kedua-dua bilangan item unik (7) dan kiraan untuk setiap elemen unik, yang merupakan hasil yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kejadian Pendua dengan Cekap dalam Tatasusunan?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!