1,"b"=>2,"c"=>3];$keys=array_rand ($array );$shuffled_array=[];foreach($keysas$key){$"/> 1,"b"=>2,"c"=>3];$keys=array_rand ($array );$shuffled_array=[];foreach($keysas$key){$">

Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP mengocok tatasusunan, mengekalkan nama kunci

PHP mengocok tatasusunan, mengekalkan nama kunci

王林
王林ke hadapan
2024-03-21 13:46:291005semak imbas

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.
  • Perpustakaan pihak ketiga secara amnya berprestasi lebih baik daripada fungsi PHP asli.

Senario penggunaan

Menukar tatasusunan dan mengekalkan nama kunci berguna dalam senario berikut:

  • Apabila anda perlu merombak susunan elemen dalam tatasusunan sementara masih perlu mengakses kekunci setiap elemen.
  • Apabila anda perlu menjana senarai main rawak atau senarai tempah item yang lain.
  • Apabila anda perlu mengambil sampel data secara rawak dalam tatasusunan.

Nota

  • array_rand()mt_rand() 会返回一个键,而不是值。需要使用 $array[$key] dan
  • akan mengembalikan kunci, bukan nilai. Perlu menggunakan $array[$key] untuk mendapatkan nilai.
  • Perpustakaan pihak ketiga mungkin perlu dipasang sebelum ia boleh digunakan.
  • Pastikan anda menyalin tatasusunan sebelum merombaknya untuk mengelakkan mengubah suai tatasusunan asal.
🎜

Atas ialah kandungan terperinci PHP mengocok tatasusunan, mengekalkan nama kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:PHP mengira cincangan fail MD5Artikel seterusnya:PHP mengira cincangan fail MD5