php陣列進行打亂,重新排列
阿新 • • 發佈:2018-11-17
最近做專案遇到這樣一個問題,是關於一個考試的專案:
要求A/B/C/D的答案不能始終在一樣的位置,所以就要進行重新組裝隨機出來了。
黏上程式碼
<?php header("Content-type: text/html; charset=utf-8"); $array=[ 'choice'=>['直角三角形','銳角三角形','鈍角三角形','天角三角形'] ]; function random_arr($array){ $count = count($array['choice']); //獲取陣列的長度 $arr=array(); while(count($arr)<$count) { $num = rand(0,$count-1); $arr[]=$array['choice'][$num]; //重新進行組裝 $arr=array_unique($arr); //去除重複的 } $arr = array_merge ($arr); //下標重新進行排序 $result['choice']=$arr; //轉換成二位的陣列,重新返回回去 return $result; } var_dump(random_arr($array)); /*輸入結果,這些都是隨機排列的 $result = [ 'choice'=>[ '0'=>'天角三角形', '1'=>'鈍角三角形', '2'=>'直角三角形', '3'=>'銳角三角形', ] ] */ exit(); ?>
#注意:發現如果資料量比較大的情況下,這個我寫的函式其實並不好用,耗時那是相當的長。後來我去網上找了下,發現php就有自帶一個這樣子的函式,shuffle()。具體用法自行百度。