PHP mempunyai tiga penyelesaian yang paling biasa digunakan untuk menukar nilai kunci tatasusunan: array_flip() fungsi: fungsi ksort() terpantas: sesuai untuk situasi di mana kekunci isihan diperlukan Penyalur tersuai: cekap untuk tatasusunan kecil
Dalam PHP, menukar nilai kunci tatasusunan adalah tugas biasa. Terdapat beberapa cara berbeza untuk melakukan ini, masing-masing mempunyai ciri kecekapannya sendiri. Artikel ini akan menganalisis tiga penyelesaian yang paling biasa digunakan: fungsi array_flip()
, fungsi ksort()
dan iterator tersuai. array_flip()
函数、ksort()
函数和自定义迭代器。
array_flip()
函数array_flip()
函数创建一个新的数组,其中键和值互换。这是转换数组键值的最快方法:
$array = ['a' => 1, 'b' => 2, 'c' => 3]; $flipped = array_flip($array); // $flipped = [1 => 'a', 2 => 'b', 3 => 'c']
ksort()
函数ksort()
函数对数组键进行排序。然后,可以将排序后的数组中的键作为新数组的键,值作为新数组的值:
$array = ['b' => 2, 'c' => 3, 'a' => 1]; ksort($array); // $array = ['a' => 1, 'b' => 2, 'c' => 3] $flipped = array_combine(array_keys($array), array_values($array)); // $flipped = [1 => 'a', 2 => 'b', 3 => 'c']
可以使用自定义迭代器来遍历原始数组并创建一个新数组,其中键和值互换:
$array = ['a' => 1, 'b' => 2, 'c' => 3]; $flipped = []; foreach ($array as $key => $value) { $flipped[$value] = $key; }
以下是一个将用户 ID 映射到用户名数组的实战案例:
// 假设 $users 是一个关联数组,键为用户 ID,值为用户名 $userIds = [10, 20, 30]; // 使用 `array_flip()` 函数创建映射 $usernameMap = array_flip($users); // 使用映射获取特定用户 ID 的用户名 $username = $usernameMap[20]; // 'user20'
在大多数情况下,array_flip()
函数是最快的解决方案。然而,当需要在转换后对键进行排序时,ksort()
array_flip()
array_flip()
mencipta tatasusunan baharu yang mana kunci dan nilainya ditukar. Ini ialah cara terpantas untuk menukar nilai kunci tatasusunan: rrreee
ksort()
functionksort()
function sorts keys . Anda kemudiannya boleh menggunakan kekunci dalam tatasusunan yang diisih sebagai kunci dan nilai sebagai nilai tatasusunan baharu: 🎜rrreeearray_flip()
ialah penyelesaian terpantas. Walau bagaimanapun, apabila kunci perlu diisih selepas penukaran, kaedah ksort()
adalah lebih sesuai. Iterator tersuai juga boleh menjadi cekap untuk tatasusunan kecil, tetapi kecekapannya berkurangan apabila saiz tatasusunan meningkat. 🎜🎜Secara umum, penyelesaian yang mana untuk dipilih bergantung pada senario dan keperluan prestasi tertentu. 🎜Atas ialah kandungan terperinci PHP menukar nilai kunci tatasusunan: analisis kecekapan penyelesaian yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!