Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengira Elemen Kosong dengan Cekap dalam Tatasusunan Besar?

Bagaimanakah Saya Boleh Mengira Elemen Kosong dengan Cekap dalam Tatasusunan Besar?

Susan Sarandon
Susan Sarandonasal
2024-12-04 21:36:12189semak imbas

How Can I Efficiently Count Empty Elements in a Large Array?

Mengira Nilai Tatasusunan dengan Kecekapan

Dengan tatasusunan yang mengandungi pelbagai elemen, selalunya perlu untuk mengira kejadian nilai tertentu. Dalam kes ini, kami cuba mengira bilangan elemen kosong dalam tatasusunan.

Masalah

Pertimbangkan tatasusunan berikut:

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

Cabarannya ialah untuk mengira bilangan elemen dengan nilai kosong dengan cekap. Pendekatan naif menggunakan gelung dan perbandingan melebihi 30 saat untuk tatasusunan besar dengan ratusan elemen.

Penyelesaian Cekap

Untuk meningkatkan kecekapan, kami boleh memanfaatkan fungsi array_count_values. Fungsi ini mencipta tatasusunan bersekutu di mana kekunci mewakili nilai tatasusunan dan nilai yang sepadan mewakili kiraan masing-masing.

function with($array) {
    $counts = array_count_values($array);
    return $counts[''];
}

Dalam tatasusunan contoh, '' mewakili nilai kosong. Dengan mengakses $counts[''], kami terus memperoleh kiraan elemen kosong, menawarkan peningkatan kelajuan yang ketara berbanding pendekatan berasaskan gelung.

Penggunaan

Kepada gunakan penyelesaian ini, hanya panggil fungsi dengan, menghantar tatasusunan untuk diperiksa. Contohnya, dengan tatasusunan yang diberikan:

$count = with($array); // $count will be 3

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Elemen Kosong dengan Cekap dalam Tatasusunan Besar?. 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