Rumah >pembangunan bahagian belakang >tutorial php >Adakah `isset` Lebih Cepat daripada `in_array` untuk Menyemak Elemen Tatasusunan?
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;
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!