在上一篇的文章中我們介紹了數組元素進行降序排序的方法,感興趣的可以點擊鏈接查閱→《PHP數組學習之巧用數組函數對數組進行降序排序! 》。那麼如何不想按一定的規則來升序或降序排序,而只是想要破壞原有順序,打亂數組元素,這要怎麼操作呢?
今天我們就來學習PHP陣列如何進行隨機排序,如何隨機打亂陣列元素。
那麼要怎麼操作呢?其實很簡單,直接使用內建函數shuffle()即可實現。 shuffle()函數會將陣列中的元素依隨機順序重新排列。
下面我們就來透過程式碼實例來看看shuffle()函數怎麼隨機打亂陣列。
<?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); ?>
輸出結果:
刷新一下,結果就改變了:
說明:shuffle()函數不僅會將陣列隨機打亂,還會刪除陣列中原有的鍵名,並為其賦與新的數值鍵名(即不會保持索引關係)。
如果想要保留鍵名的隨機打亂數組,可以藉助array_keys()函數。
想法:使用array_keys()函數取得原始數組$arr的所有鍵名,會傳回包含數組中所有鍵名的一個新數組$key。然後使用shuffle()函數隨機打亂這個$key數組。最後使用foreach迴圈遍歷$key數組,根據$key數組的值,取得$arr數組的鍵值對,並一一賦值給$arr2數組即可。
我們來看看實作程式碼:
<?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 "随机打乱数组:"; var_dump($arr); ?>
輸出結果:
好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學
最後推薦給大家一個PHP陣列的免費影片教學:PHP函數之array陣列函數影片講解,快來學習吧!
以上是PHP數組學習隨機排序,打亂數組元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!