Rumah > pembangunan bahagian belakang > tutorial php > Adakah `isset` Lebih Cepat daripada `in_array` untuk Menyemak Elemen Tatasusunan?

Adakah `isset` Lebih Cepat daripada `in_array` untuk Menyemak Elemen Tatasusunan?

Susan Sarandon
Lepaskan: 2024-11-11 11:02:03
asal
541 orang telah melayarinya

Is `isset` Faster than `in_array` for Checking Array Elements?

Perbandingan Kelajuan: in_array vs. isset

Apabila bekerja dengan tatasusunan yang besar, adalah penting untuk mengoptimumkan prestasi kod. Manakah yang lebih pantas: fungsi in_array atau binaan isset?

in_array:

Fungsi ini melakukan carian linear, berulang melalui tatasusunan untuk mencari padanan. Ia mempunyai kerumitan masa O(n), dengan n ialah saiz tatasusunan.

isset:

isset, sebaliknya, menggunakan cincang carian untuk menentukan sama ada kunci tertentu wujud dalam tatasusunan bersekutu. Ini menjadikannya lebih pantas daripada in_array, dengan kerumitan masa yang berterusan O(1).

Ujian Prestasi:

Untuk menunjukkan perbezaan kelajuan ini, kami boleh menjalankan penanda aras:

$a = array();
for ($i = 0; $i < 10000; ++$i) {
    $v = rand(1, 1000000);
    $a[$v] = $v;
}

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    isset($a[rand(1, 1000000)]);
}

$total_time = microtime(true) - $start;
echo "isset: " . number_format($total_time, 6) . PHP_EOL;

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    in_array(rand(1, 1000000), $a);
}

$total_time = microtime(true) - $start;
echo "in_array: " . number_format($total_time, 6) . PHP_EOL;
Salin selepas log masuk

Keputusan:

Keputusan ujian menunjukkan bahawa isset adalah jauh lebih pantas daripada in_array, menunjukkan kelebihan kerumitan masa yang berterusan.

Kesimpulan:

Apabila menyemak kewujudan elemen dalam tatasusunan, isset ialah pilihan pilihan kerana prestasinya yang lebih pantas. Walau bagaimanapun, jika susunan elemen adalah penting, maka in_array hendaklah digunakan kerana ia mengekalkan susunan elemen.

Atas ialah kandungan terperinci Adakah `isset` Lebih Cepat daripada `in_array` untuk Menyemak Elemen Tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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