在php中我们可以使用 mt_rand() 或 rand() 函数获取某两个数字之间的一个随机数,但如果从一个数组中随机取出一个或多个元素该如何做呢?下面这片博文,我们就来说一说利用php中的 array_rand() 函数随机从数组中取出一个或多个元素的方法!

php array_rand() 函数介绍

array_rand():返回数组中的随机键名,如果指定多个,则以数组的形式返回!

语法:

array_rand(array,number)

参数:

array:必需。规定数组。

number:可选,返回多少数量的键名,默认为1

注:number参数如果设置为大于1的数,则返回包含随机键名的数组,否则返回该元素的键名

例:php从数组中随机获取一个元素

代码:

<?php
//飞鸟慕鱼博客
$arr = array('red','blur','green');
$key = array_rand($arr);
// 这里是返回的元素下标,也就是键名,这里是字符串的形式输出
echo $key;
// 输出下标(键名)所指向的元素值
echo '<br/>';
echo $arr[$key];
?>

返回结果:

2
green

注意:

1、使用 array_rand() 函数随机获取一个元素时,是返回一个字符串形式的元素的键名

2、利用 array_rand() 函数返回的键名,来输出键名所指向的元素值

例:php从数组中随机获取多个元素

php代码:

<?php
//飞鸟慕鱼博客
$array = array("red","green","blue","yellow","brown",'black','white');
$keys = array_rand($array,3); //这里返回的是一个数组键名的集合数组
var_dump($keys); //打印一下数组
echo '<br/>';
foreach ($keys as $k => $a) {
    echo $array[$a]; //利用获取到的键名输出元素的值
    echo '<br/>';
}
?>

输出结果:

array(3) {
  [0]=>
  int(0)
  [1]=>
  int(3)
  [2]=>
  int(6)
}
red
yellow
white

注意:

1、使用 array_rand() 函数随机获取多个元素时,是返回由键名集合的数组

2、再利用返回的数组,来获取想要的元素值