在之前的文章中我們介紹了隨機打亂數(shù)組元素的方法,感興趣的可以點擊查閱→《PHP數(shù)組學(xué)習(xí)之隨機排序,打亂數(shù)組元素》。下面這篇文章我們在來看看隨機,介紹一下隨機獲取一個或多個數(shù)組元素的方法。
其實PHP中提供有一個數(shù)組函數(shù)array_rand(),它的作用就是隨機獲取,但只能獲取一個或多個數(shù)組鍵名,無法獲取鍵值。
array_rand()雖然無法直接獲取數(shù)組鍵值,但我們利用array_rand()獲取到的隨機鍵名,再多添加幾句代碼來實現(xiàn)隨機獲取元素(鍵名和鍵值都有)。
我們來看看實現(xiàn)代碼:
<?php $arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $rand = array_rand($arr); $arr2[$rand]=$arr[$rand]; var_dump($arr2); ?>
輸出結(jié)果:
可以看出:我們只隨機獲取到了一個元素,因為array_rand($arr)
語句只能隨機獲取一個鍵名,那么如何獲取多個鍵名呢?
只需要給array_rand()函數(shù)設(shè)置兩個參數(shù),第一個參數(shù)$array
指定數(shù)組,而第二個參數(shù)$number
指定要獲取的鍵名的數(shù)目。
<?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); ?>
當(dāng)array_rand()函數(shù)獲取到了多個鍵名,那么就會返回一個包含隨機鍵名的數(shù)組。
這樣我們就可以使用foreach語句來遍歷$rands
數(shù)組,不斷的根據(jù)$rands
數(shù)組中的鍵名從$arrs
數(shù)組中取值,并賦值給新數(shù)組$arr2
即可。我們來看看輸出結(jié)果:
刷新一下,結(jié)果就改變了:
注:array_rand()如果獲取的數(shù)量($number
)超過了 $array
的長度,就會導(dǎo)致 E_WARNING 錯誤,并返回 NULL。
好了就說到這里了,有其他想知道的,可以點擊這個哦。→ →php視頻教程
最后給大家推薦一個PHP數(shù)組的免費視頻教程:PHP函數(shù)之a(chǎn)rray數(shù)組函數(shù)視頻講解,快來學(xué)習(xí)吧!