一、shuffle函數是什麼
在PHP中,shuffle()函數可以將數組中的元素隨機打亂,返回值是一個布爾值。用法如下:
$my_array = array("red","green","blue","yellow","purple"); shuffle($my_array); print_r($my_array);
輸出結果是:
Array ( [0] => green [1] => red [2] => purple [3] => yellow [4] => blue )
可以看到,shuffle()函數將數組中的元素隨機打亂,打亂後的數組下標是隨機的。如果打亂成功,函數返回true,否則返回false。
注意:shuffle()函數只能作用於數組,如果需要將字符串打亂,需要先將字符串轉換成數組。例如:
$str = "hello world"; $arr = str_split($str); //將字符串轉換成數組 shuffle($arr); $new_str = implode("",$arr); //將數組轉換成字符串 echo $new_str;
二、shuffle函數的參數
shuffle()函數只有一個參數,即要打亂的數組。如果要打亂的數組是關聯數組,那麼該函數會重置數組下標。例如:
$my_array = array("name"=>"Tom","age"=>18,"gender"=>"male"); shuffle($my_array); print_r($my_array);
輸出結果是:
Array ( [0] => Tom [1] => 18 [2] => male )
可以看到,由於該數組是關聯數組,shuffle()函數將其轉換成了索引數組,並將原本的關聯下標丟棄了。
三、shuffle函數應用場景
shuffle()函數在一些有關隨機排序的場景中被廣泛使用,例如在開發答題APP的時候,我們需要將選項A、B、C、D隨機排序,這時候就可以使用shuffle()函數。同時,shuffle()函數也可以用來生成隨機的抽獎結果,例如:
$prize_array = array("iphone X","kindle","starbucks coupon","nothing"); shuffle($prize_array); $prize = $prize_array[0]; echo "Congratulations! Your prize is ".$prize;
其中$prize_array是一個獎品數組,調用shuffle()函數隨機排序後,取出第一個元素作為中獎者的獎品,輸出結果類似:
Congratulations! Your prize is kindle
四、shuffle函數的小技巧
shuffle()函數可以用來生成隨機的密碼字符串,例如:
$char_array = array_merge(range('a','z'),range('A','Z'),range('0','9')); shuffle($char_array); $password = substr(implode('', $char_array), 0, 8); echo $password;
其中range()函數用來生成a~z、A~Z、0~9這三組字符,然後使用array_merge()函數將它們合併成一個數組,調用shuffle()函數隨機打亂後,使用implode()函數將它們轉換成字符串,用substr()函數取出前8位作為隨機生成的密碼。
五、shuffle函數的注意事項
在使用shuffle()函數的時候,有一些需要注意的事項,例如:
1.如果數組為空,那麼shuffle()函數會返回false
2.如果數組中只有一個元素,那麼shuffle()函數不會改變其順序
3.如果要打亂的數組中有null元素,shuffle()函數會將其轉換成空字符串””
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/157591.html