Rumah > pembangunan bahagian belakang > tutorial php > Persaingan kelajuan penukaran nilai kunci tatasusunan PHP

Persaingan kelajuan penukaran nilai kunci tatasusunan PHP

WBOY
Lepaskan: 2024-05-01 21:33:02
asal
743 orang telah melayarinya

Dalam PHP, kaedah pengisihan terpantas untuk menukar nilai kunci tatasusunan ialah: array_flip(): 0.00192 saat array_combine(): 0.00506 saat array_map(): 0.01369 saat foreach() + array_keys(): 0.0130 saat gelung tersuai00:32 saat

PHP 数组键值转换速度大比拼

Persaingan Kelajuan Penukaran Nilai Kunci Tatasusunan PHP

Adalah penting untuk memproses tatasusunan dan menukar nilai kunci dengan cekap dalam PHP. Artikel ini akan menjalankan persaingan pantas antara beberapa kaedah penukaran nilai kunci biasa dan menyediakan kes praktikal untuk membantu anda memahami prestasinya.

Persekitaran ujian

  • PHP 8.1
  • macOS Catalina 10.15
  • Saiz tatasusunan ujian: 1,000,000

kaedah berikut

    array_flip()
  • array_flip()
  • array_combine()
  • array_map()
  • foreach()array_keys()
  • 自定义循环

实战案例

$arr = range(1, 1000000);

// 使用 array_flip()
$start = microtime(true);
$flipped = array_flip($arr);
$end = microtime(true);
$time_array_flip = $end - $start;

// 使用 array_combine()
$keys = range('a', 'z');
$start = microtime(true);
$combined = array_combine($keys, $arr);
$end = microtime(true);
$time_array_combine = $end - $start;

// 使用 array_map()
$start = microtime(true);
$mapped = array_map(function($x) { return [$x, $x]; }, $arr);
$end = microtime(true);
$time_array_map = $end - $start;

// 使用 foreach() 和 array_keys()
$start = microtime(true);
$flipped = [];
$keys = array_keys($arr);
foreach ($keys as $key) { $flipped[$key] = $arr[$key]; }
$end = microtime(true);
$time_foreach = $end - $start;

// 使用自定义循环
$start = microtime(true);
$flipped = [];
for ($i = 0; $i < count($arr); $i++) { $flipped[$arr[$i]] = $arr[$i]; }
$end = microtime(true);
$time_custom = $end - $start;

// 显示结果
echo "array_flip(): $time_array_flip s\n";
echo "array_combine(): $time_array_combine s\n";
echo "array_map(): $time_array_map s\n";
echo "foreach() + array_keys(): $time_foreach s\n";
echo "自定义循环: $time_custom s\n";
Salin selepas log masuk

结果

方法 时间(秒)
array_flip() 0.00192
array_combine() 0.00506
array_map() 0.01369
foreach() + array_keys() 0.01332
自定义循环 0.00600

结论

根据我们的测试,array_flip() 是转换数组键值的最快方法,而 array_map()foreach() + array_keys() 也表现不错。对于大型数组,array_flip()array_combine()

🎜array_map()🎜🎜foreach() dan array_keys()🎜🎜 sejak Define loop🎜🎜🎜🎜Kes praktikal🎜🎜rrreee🎜🎜Result🎜🎜 Kaedah Masa (saat) array_flip() 0.00192 array_combine() 0.00506 td > array_map() 0.01369 foreach() + array_keys() 0.01332 Gelung tersuai 0.00600 🎜🎜Kesimpulan🎜🎜🎜mengikut us Diuji, array_flip() ialah cara terpantas untuk menukar nilai kunci tatasusunan, manakala array_map() dan foreach() + array_keys () juga berfungsi dengan baik. Untuk tatasusunan besar, array_flip() ialah pilihan terbaik anda kerana ia memberikan prestasi dan kecekapan tertinggi. 🎜

Atas ialah kandungan terperinci Persaingan kelajuan penukaran nilai kunci tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan