1. 程式人生 > >php陣列進行打亂,重新排列

php陣列進行打亂,重新排列

最近做專案遇到這樣一個問題,是關於一個考試的專案:

要求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()。具體用法自行百度。