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

Persaingan kelajuan penukaran nilai kunci tatasusunan PHP

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBasal
2024-05-01 21:33:02766semak imbas

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";

结果

方法 时间(秒)
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!

Kenyataan:
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 sebelumnya:Apakah maksud nbsp dalam phpArtikel seterusnya:Apakah maksud nbsp dalam php