關於array_rand函數,在文檔中的說明是這樣的:
php
array_rand() 函數從數組中隨機選出一個或多個元素,並返回。數組
第二個參數用來肯定要選出幾個元素。若是選出的元素不止一個,則返回包含隨機鍵名的數組,不然返回該元素的鍵名。函數
常規用法,好比咱們從一個數組裏面隨機輸出一些元素:spa
$arr = array('a'=>'Dog','b'=>'Cat','c'=>'Horse'); $num = rand(1,3); $keys = array_rand($arr, $num); foreach($keys as $k){ echo $arr[$k]; }
這裏要輸出的元素數使用的是隨機的1到3,如裏$num=1時,這段代碼將會出現錯誤,由於$num=1時array_rand返回的特麼居然是字符串!code
解決方法:orm
除了使用is_string或is_array等方式作做判斷處理之外,無疑咱們都更喜歡簡便的方法:ci
$keys = (array) array_rand($arr, $num);
這樣當array_rand返回單個鍵名字符串時,就能強制轉換爲數組(0=>'鍵名') 了。文檔