Manakah Lebih Cekap: in_array atau isset?
Apabila berurusan dengan tatasusunan yang besar, mengoptimumkan kod untuk kecekapan adalah penting. Dua pendekatan biasa menggunakan fungsi in_array dan menyemak kewujudan kunci menggunakan isset.
in_array
Fungsi in_array membandingkan nilai dengan tatasusunan dan mengembalikan benar jika wujud . Kerumitan masanya ialah O(n), dengan n ialah bilangan elemen dalam tatasusunan. Ini bermakna apabila saiz tatasusunan bertambah, masa carian meningkat secara linear.
isset
Fungsi isset menyemak sama ada kunci wujud dalam tatasusunan, tanpa mengira nilainya . Ia menggunakan jadual cincang untuk menyimpan kunci dan nilai, menghasilkan kerumitan masa O(1) untuk carian kunci.
Dalam contoh kod yang disediakan, isset lebih disukai kerana:
Hasil Penandaarasan
Untuk menggambarkan perbezaan kecekapan ini, pertimbangkan tatasusunan dengan 10,000 elemen:
isset: 0.009623 in_array: 1.738441
Apabila saiz tatasusunan bertambah, jurang prestasi antara kedua-dua pendekatan akan menjadi lebih ketara.
Pertimbangan Tambahan
Jika perlanggaran dalam tatasusunan membimbangkan, khususnya apabila menggunakan sintaks $a[$new_val], anda boleh menggunakan pendekatan kalis perlanggaran seperti $a [md5($new_val)]. Teknik ini memperkenalkan satu lagi lapisan kerumitan, tetapi ia boleh mengurangkan kemungkinan serangan DoS yang mengeksploitasi penjanaan kunci yang terdedah kepada perlanggaran.
Atas ialah kandungan terperinci Adakah isset Lebih Cekap Daripada in_array untuk Tatasusunan Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!