在先前的文章中我們介紹了隨機打亂數組元素的方法,有興趣的可以點選查閱→《PHP數組學習之隨機排序,打亂數組元素》。下面這篇文章我們在來看看隨機,介紹一下隨機取得一個或多個陣列元素的方法。
其實PHP中提供有一個陣列函數array_rand(),它的作用就是隨機獲取,但只能取得一個或多個陣列鍵名,無法取得鍵值。
array_rand()雖然無法直接取得陣列鍵值,但我們利用array_rand()取得的隨機鍵名,再多加入幾句程式碼來實作隨機取得元素(鍵名和鍵值都有)。
我們來看看實作程式碼:
<?php $arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $rand = array_rand($arr); $arr2[$rand]=$arr[$rand]; var_dump($arr2); ?>
輸出結果:
#可以看出:我們只隨機取得到了一個元素,因為array_rand($arr)
語句只能隨機取得一個鍵名,那麼要如何取得多個鍵名呢?
只需要給array_rand()函數設定兩個參數,第一個參數$array
指定數組,而第二個參數$number
#指定要取得的鍵名的數目。
<?php $arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $rand = array_rand($arr,3); foreach($rand as $val){ $arr2[$val]=$arr[$val]; } var_dump($arr2); ?>
當array_rand()函數取得了多個鍵名,那麼就會傳回一個包含隨機鍵名的陣列。
這樣我們就可以使用foreach語句來遍歷$rands
數組,不斷的根據$rands
數組中的鍵名從$arrs
數組中取值,並賦值給新數組$arr2
即可。我們來看看輸出結果:
刷新一下,結果就改變了:
註:array_rand()如果取得的數量($number
)超過了$array
的長度,就會導致E_WARNING 錯誤,並且傳回NULL。
好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學
最後推薦給大家一個PHP陣列的免費影片教學:PHP函數之array陣列函數影片講解,快來學習吧!
以上是PHP數組學習隨機取得多個元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!