Perbandingan Prestasi Kaedah Transformasi Tatasusunan
Untuk menukar tatasusunan kepada yang lain, kami sering menggunakan teknik seperti foreach, peta_susun dengan fungsi lambda/penutupan , atau array_map dengan fungsi statik. Artikel ini menilai perbezaan prestasi antara pendekatan ini.
Foreach
Foreach ialah kaedah klasik yang berulang melalui tatasusunan, mengubah setiap elemen secara individu. Ia mencipta tatasusunan baharu daripada hasil:
$result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result;
Array_map dengan Lambda
Array_map dengan fungsi lambda menggabungkan elemen tatasusunan menggunakan panggilan balik yang disediakan. Dalam kes ini, fungsi lambda mendarabkan setiap elemen dengan 10:
return array_map(function($number) { return $number * 10; }, $numbers);
Array_map dengan Fungsi Statik
Array_map juga boleh menggunakan fungsi statik sebagai panggilan baliknya. Di sini, fungsi statik bernama 'tenTimes' mendarab setiap elemen:
function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers);
Analisis Prestasi
Tanda aras menggunakan PHP 5.6, 7 dan HHVM menunjukkan bahawa kaedah array_map, kedua-duanya dengan fungsi lambda dan statik, secara konsisten lebih pantas daripada foreach. Ini kerana array_map menggunakan fungsi dalaman, yang dioptimumkan untuk kelajuan.
Walau bagaimanapun, apabila menggunakan penutupan dengan array_map dan memperkenalkan pembolehubah luaran dengan 'use', impak prestasi menjadi ketara. Foreach dan peta_tatasusunan dengan fungsi yang dinamakan berfungsi sama dalam senario ini.
Kesimpulan
Apabila kecekapan diutamakan, peta_susun hendaklah digunakan berbanding foreach. Jika menggunakan penutupan dengan pembolehubah luaran, pertimbangkan untuk mengoptimumkan kod atau menggunakan array_map dengan fungsi bernama. Pilihan akhirnya bergantung pada keperluan khusus dan pertimbangan prestasi.
Atas ialah kandungan terperinci Kaedah Transformasi Tatasusunan mana dalam PHP Menawarkan Prestasi Terbaik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!