定義和用法
array_rand() 函數返回數組中的隨機鍵名,或者如果您規定函數返回不只一個鍵名,則返回包含隨機鍵名的數組。
說明
array_rand() 函數從數組中隨機選出一個或多個元素,並返回。
第二個參數用來確定要選出幾個元素。如果選出的元素不止一個,則返回包含隨機鍵名的數組,否則返回該元素的鍵名。
array_rand() 在你想從數組中取出一個或多個隨機的單元時相當有用。它接受 input 作為輸入數組和一個可選的參數 num_req,指明了你想取出多少個單元 - 如果沒有指定,預設為 1。如果你只取出一個,array_rand() 返回一個隨機單元的鍵名,否則就返回一個包含隨機鍵名的數組。這樣你就可以隨機從數組中取出鍵名和值。
如下例所示:
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
print $input[$rand_keys[0]] . "\n";
print $input[$rand_keys[1]] . "\n";
輸出:
Trinity
Cypher
【注意】
當 num_req 為 1 時,返回非數組資料,而當 num_req >=2 時,返回數組資料,所以,如果取的數量不確定是否為 1 的情況下,建議如下方式統一轉換為數組:
$num_req = max(1, $num_req);
$num_req = min($num_req, count($input));
$rand_keys = (array)array_rand($input, $num_req);
組隨機抽取shuffle()和array_rand()
隨機抽取就是將原有數組的元素打亂後輸出,這意味著每次執行後,抽取的順序或元素都不同,該功能可以用來在網頁上每次顯示不同的廣告用shuffle()函數實現數組的隨機抽取:
<?php
$textArray = array('1','2','3','4','5','6','7');
shuffle($textArray);
print_r($textArray);
?>
結果如下顯示:
Array ( [0] => 6 [1] => 3 [2] => 7 [3] => 4 [4] => 1 [5] => 2 [6] => 5 )
實現的數組元素的隨機排序;
另外php還提供了從數組中隨機抽取值的函數:array_rand() ,其調用格式如下:
array_rand(<數組>,[抽取元素的個數]);
<?php
$arry = array('A','B','C','D');
$result = array_rand($arry,2);
foreach ($result as $val) {
echo $arry["$val"].""; }
?>
結果顯示如下:
B
C
重新整理有不同的結果;