Pertukaran nilai kunci tatasusunan PHP mempunyai dua algoritma: pertukaran nilai kunci mudah dan pertukaran nilai kunci berjujukan. Yang pertama merentasi tatasusunan dan menyimpan nilai utama ke dalam tatasusunan baharu dalam surat-menyurat satu-dengan-satu, manakala yang kedua menggunakan fungsi array_values() dan array_keys() untuk menukar nilai-nilai utama mengikut tertib. Ujian prestasi menunjukkan bahawa algoritma swap nilai kunci berjujukan adalah jauh lebih pantas daripada algoritma swap nilai kunci mudah apabila tatasusunan adalah besar.
Dalam PHP, tatasusunan ialah koleksi tertib yang menyimpan dan mengurus data. Kadangkala, kita perlu menukar nilai utama tatasusunan, yang boleh dicapai dengan algoritma berikut:
function swapArrayKeysValues(array $array): array { $flippedArray = []; foreach ($array as $key => $value) { $flippedArray[$value] = $key; } return $flippedArray; }
Untuk memasukkan susunan nilai kunci tatasusunan Untuk menukar nilai, kami boleh menggunakan algoritma berikut:
function orderedSwapArrayKeysValues(array $array): array { $values = array_values($array); $keys = array_keys($array); return array_combine($values, $keys); }
Untuk membandingkan prestasi kedua-dua algoritma, kami menanda aras tatasusunan 10,000 elemen:
$array = range(1, 10000); // 简单键值互换 $start = microtime(true); $result = swapArrayKeysValues($array); $end = microtime(true); echo "简单键值互换耗时:" . ($end - $start) . " 秒\n"; // 按序键值互换 $start = microtime(true); $result = orderedSwapArrayKeysValues($array); $end = microtime(true); echo "按序键值互换耗时:" . ($end - $start) . " 秒\n";
Output:
Analisis Prestasialgoritma swap nilai kunci berjujukan adalah jauh lebih pantas daripada algoritma swap nilai kunci yang mudah.
Atas ialah kandungan terperinci Pertukaran nilai kunci tatasusunan PHP: Algoritma dan analisis prestasi pertukaran nilai kunci berjujukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!