Editor PHP Xinyi memperkenalkan anda kepada kaedah operasi tatasusunan yang menarik - merombak tatasusunan dan mengekalkan nama kunci. Dalam PHP, susunan rawak elemen tatasusunan boleh dicapai dengan mudah melalui fungsi shuffle, tetapi indeks akan ditetapkan semula. Jika anda ingin mengekalkan nama kunci asal, anda boleh mula-mula menggunakan fungsi array_keys untuk mendapatkan tatasusunan nama kunci, kemudian berebut ia bersama-sama dengan tatasusunan nilai, dan akhirnya menggabungkannya semula menjadi tatasusunan baharu melalui fungsi array_combine. Dengan cara ini, anda boleh mencapai susunan rawak elemen tatasusunan sambil mengekalkan nama kunci!
PHP merombak tatasusunan dan menyimpan nama kunci
Dalam php, menggunakan fungsi shuffle()
boleh merombak susunan tatasusunan, tetapi nama kunci tidak akan disimpan. Untuk mengekalkan nama kunci, anda boleh menggunakan kaedah berikut:
Kaedah 1: Gunakan array_rand()
$array = ["a" => 1, "b" => 2, "c" => 3]; $keys = array_rand($array); $shuffled_array = []; foreach ($keys as $key) { $shuffled_array[$key] = $array[$key]; }
Kaedah 2: Gunakan mt_rand()
$array = ["a" => 1, "b" => 2, "c" => 3]; $keys = array_keys($array); shuffle($keys); $shuffled_array = []; foreach ($keys as $key) { $shuffled_array[$key] = $array[$key]; }
Kaedah 3: Gunakan perpustakaan pihak ketiga
Perpustakaan pihak ketiga, seperti ArrayLib
, menyediakan cara yang lebih mudah untuk mengocok tatasusunan dan mengekalkan nama kunci:
use ArrayLibArrays; $array = ["a" => 1, "b" => 2, "c" => 3]; $shuffled_array = Arrays::shuffle($array);
Perbandingan prestasi
Terdapat perbezaan dalam prestasi ketiga-tiga kaedah ini:
array_rand()
Berfungsi paling baik pada tatasusunan kecil, tetapi kurang cekap pada tatasusunan besar. mt_rand()
Berprestasi baik merentas semua saiz tatasusunan. Senario penggunaan
Menukar tatasusunan dan mengekalkan nama kunci berguna dalam senario berikut:
Nota
array_rand()
和 mt_rand()
会返回一个键,而不是值。需要使用 $array[$key]
dan $array[$key]
untuk mendapatkan nilai. Atas ialah kandungan terperinci PHP mengocok tatasusunan, mengekalkan nama kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!