一聚教程网:一个值得你收藏的教程网站

热门教程

PHP中array_rand()函数在数组中随机抽取n个数据的值

时间:2022-06-24 19:48:41 编辑:袖梨 来源:一聚教程网

定义和用法

array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。

说明

array_rand() 函数从数组中随机选出一个或多个元素,并返回。
第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。

array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用。它接受 input 作为输入数组和一个可选的参数 num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1。如果你只取出一个,array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。   

如下例所示:

$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()函数实现数组的随机抽取:

    $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(<数组>,[抽取元素的个数]);

    $arry = array('A','B','C','D');
    $result = array_rand($arry,2);
    foreach ($result as $val) {
    echo $arry["$val"].""; }
?>

结果显示如下:
B
C
刷新有不同的结果;

热门栏目