Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengganggu susunan tatasusunan dalam php tetapi mengekalkan subskrip tidak berubah
Dalam pengaturcaraan PHP, kita sering menghadapi senario di mana kita perlu mengganggu susunan elemen tatasusunan, seperti perlu mengisih set nombor rawak atau perlu mencuba set data secara rawak. Secara umumnya, kita boleh menggunakan fungsi shuffle() yang disertakan dengan PHP untuk mengocok elemen tatasusunan, tetapi fungsi ini akan mengubah nilai utama elemen, menyebabkan subskrip susunan tatasusunan asal berubah, dengan itu memusnahkan yang asal struktur data. Artikel ini akan memperkenalkan kaedah untuk melaksanakan shuffling tatasusunan PHP tanpa mengubah susunan subskrip tatasusunan.
Pelaksanaan Kaedah
Untuk mencapai shuffling tatasusunan PHP tanpa mengubah subskrip susunan tatasusunan, kita boleh menggunakan kaedah yang serupa dengan algoritma shuffling, iaitu menyalin semua elemen tatasusunan ke tatasusunan baharu dan menjana susunan isihan baharu secara rawak. Kemudian lelaran ke atas tatasusunan asal dan isikan elemennya ke dalam tatasusunan baharu satu demi satu dalam susunan baharu. Dengan cara ini, susunan subskrip tatasusunan asal tidak berubah, tetapi susunan isihan elemen tatasusunan telah diacakkan. Kod PHP adalah seperti berikut:
function shuffleArray($arr) {
// Copy array
$newArr = $arr;
// Isih rawak
shuffle ($newArr );
// Traverse array asal
foreach ($arr as $key => $value) {
// 将元素按照新顺序填充到新数组中 $arr[$key] = $newArr[$key];
}
// Kembalikan tatasusunan baharu
kembalikan $arr;
}
Fungsi ini menerima tatasusunan input $arr dan mengembalikan tatasusunan baharu dalam susunan kocok. Dalam pelaksanaan, kami mula-mula menggunakan $newArr = $arr untuk menyalin sepenuhnya tatasusunan asal ke dalam tatasusunan baharu untuk mengelakkan masalah yang mungkin disebabkan oleh rujukan. Seterusnya, kami menggunakan fungsi shuffle() PHP untuk mengisih tatasusunan baharu secara rawak. Akhir sekali, kami mengulangi tatasusunan asal, mengisi elemennya ke dalam tatasusunan baharu satu demi satu dalam susunan baharu dan mengembalikan tatasusunan baharu.
Kebaikan dan keburukan kaedah ini
Menggunakan kaedah di atas boleh mencapai shuffling tatasusunan PHP tanpa mengubah susunan subskrip tatasusunan asal Ia mempunyai kelebihan berikut:
Walau bagaimanapun, kaedah ini juga mempunyai kelemahan berikut:
Ringkasan
Dalam pengaturcaraan PHP, mengganggu susunan elemen tatasusunan ialah senario aplikasi biasa. Menggunakan fungsi shuffle() ialah cara mudah untuk mengocok tatasusunan dalam PHP, tetapi kaedah ini akan mengubah susunan subskrip tatasusunan asal, sekali gus memusnahkan struktur data tatasusunan asal. Untuk mencapai shuffling tatasusunan PHP tanpa memusnahkan susunan subskrip tatasusunan asal, kita boleh menggunakan kaedah yang serupa dengan algoritma shuffling. Kaedah ini mempunyai had tertentu dan tidak boleh mengganggu tatasusunan yang ada, tetapi ia mempunyai pelbagai aplikasi dan kodnya ringkas dan mudah difahami. Ia adalah algoritma alat praktikal dalam pengaturcaraan PHP.
Atas ialah kandungan terperinci Bagaimana untuk mengganggu susunan tatasusunan dalam php tetapi mengekalkan subskrip tidak berubah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!