在上一篇的文章中我們介紹了數(shù)組元素進(jìn)行降序排序的方法,感興趣的可以點(diǎn)擊鏈接查閱→《PHP數(shù)組學(xué)習(xí)之巧用數(shù)組函數(shù)對(duì)數(shù)組進(jìn)行降序排序!》。那么如何不想按一定的規(guī)則來升序或降序排序,而只是想要破壞原有順序,打亂數(shù)組元素,這要怎么操作呢?
今天我們就來學(xué)習(xí)一下PHP數(shù)組如何進(jìn)行隨機(jī)排序,如何隨機(jī)打亂數(shù)組元素。
那么要怎么操作呢?其實(shí)很簡(jiǎn)單,直接使用內(nèi)置函數(shù)shuffle()即可實(shí)現(xiàn)。shuffle()函數(shù)會(huì)把數(shù)組中的元素按隨機(jī)順序重新排列。
下面我們就來通過代碼實(shí)例來看看shuffle()函數(shù)怎么隨機(jī)打亂數(shù)組。
<?php header("Content-type:text/html;charset=utf-8"); $arr1 = array(10, 23, 5, 12, 84, 16); shuffle($arr1); var_dump($arr1); $arr2= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); shuffle($arr2); var_dump($arr2); ?>
輸出結(jié)果:
刷新一下,結(jié)果就改變了:
說明:shuffle()函數(shù)不僅會(huì)將數(shù)組隨機(jī)打亂,還會(huì)刪除數(shù)組中原有的鍵名,并為其賦與新的數(shù)值鍵名(即不會(huì)保持索引關(guān)系)。
如果想要保留鍵名的隨機(jī)打亂數(shù)組,可以借助array_keys()函數(shù)。
思路:使用array_keys()函數(shù)獲取原數(shù)組$arr的所有鍵名,會(huì)返回包含數(shù)組中所有鍵名的一個(gè)新數(shù)組$key。然后使用shuffle()函數(shù)隨機(jī)打亂這個(gè)$key數(shù)組。最后使用foreach循環(huán)遍歷$key數(shù)組,根據(jù)$key數(shù)組的值,獲取$arr數(shù)組的鍵值對(duì),并一一賦值給$arr2數(shù)組即可。
我們來看看實(shí)現(xiàn)代碼:
<?php header("Content-type:text/html;charset=utf-8"); $arr =array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); var_dump($arr); if (!empty($arr)) { $key =array_keys($arr); shuffle($key); foreach ($key as $value) { $arr2[$value] =$arr[$value]; } $arr =$arr2; } echo "隨機(jī)打亂數(shù)組:"; var_dump($arr); ?>
輸出結(jié)果:
好了就說到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程
最后給大家推薦一個(gè)PHP數(shù)組的免費(fèi)視頻教程:PHP函數(shù)之a(chǎn)rray數(shù)組函數(shù)視頻講解,快來學(xué)習(xí)吧!