Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengira Kejadian Nilai Khusus dalam Tatasusunan PHP dengan Cekap?

Bagaimanakah Saya Boleh Mengira Kejadian Nilai Khusus dalam Tatasusunan PHP dengan Cekap?

Patricia Arquette
Patricia Arquetteasal
2024-12-01 18:19:10718semak imbas

How Can I Efficiently Count Occurrences of a Specific Value in a PHP Array?

Mengira Nilai dalam Tatasusunan dengan Nilai Tertentu

Dalam senario di mana anda mempunyai tatasusunan dengan pelbagai nilai dan perlu mengira kejadian daripada nilai tertentu, adalah penting untuk mencari pendekatan yang cekap. Bayangkan tatasusunan seperti:

$array = array('', '', 'other', '', 'other');

Objektif anda adalah untuk menentukan bilangan nilai kosong dalam tatasusunan.

Pendekatan Tidak Cekap

A pendekatan naif akan melibatkan lelaran melalui tatasusunan, menyemak setiap elemen terhadap nilai sasaran. Walau bagaimanapun, pendekatan ini menjadi tidak cekap untuk tatasusunan yang besar.

function without($array) {
    $counter = 0;
    for($i = 0, $e = count($array); $i < $e; $i++) {
        if(empty($array[$i])) {
            $counter += 1;
        }
    }
    return $counter;
}

Pendekatan Cekap

Untuk mempercepatkan proses, pertimbangkan untuk menggunakan fungsi array_count_values ​​PHP. Ia menerima tatasusunan sebagai hujah dan mengembalikan tatasusunan dengan setiap nilai unik sebagai kunci dan kiraannya sebagai nilai yang sepadan.

$counts = array_count_values($array);
echo $counts['']; // Outputs the number of blank elements

Menggunakan pendekatan ini, anda boleh mengira kejadian mana-mana nilai yang ditentukan dengan cekap dalam tatasusunan, walaupun untuk tatasusunan besar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kejadian Nilai Khusus dalam Tatasusunan PHP dengan Cekap?. 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