Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mengira Kejadian Pendua dengan Cekap dalam Tatasusunan?

Bagaimanakah Saya Boleh Mengira Kejadian Pendua dengan Cekap dalam Tatasusunan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 04:39:02499semak imbas

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);

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
)

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!

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