一、代码
- 注意
array_rand()
第2
个参数;第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。
public function test() {
$data = ['小红', '小橙', '小黄', '小绿', '小青', '小蓝', '小紫'];
$randNumber = isset($_GET['randNumber']) ? $_GET['randNumber'] : 1;
if (!is_numeric($randNumber)) {
exit('数据格式错误');
}
if ($randNumber <= 0 || $randNumber > count($data)) {
exit('随机数取值范围[1, ' . count($data) . ']');
}
$result = [];
self::handleData($data, $randNumber, $result);
echo "随机选取 [ {$randNumber} ] 个用户,结果为:<br/>";
foreach ($result as $value) {
echo $value . '<br/>';
}
}
public function handleData($data, $randNumber, &$result) {
$randKeys = array_rand($data, $randNumber);
if ($randNumber == 1) {
$result[] = $data[$randKeys];
} else {
foreach ($randKeys as $value) {
$result[] = $data[$value];
}
}
}
二、打印
数据格式错误
随机数取值范围[1, 7]
随机数取值范围[1, 7]
随机选取 [ 1 ] 个用户,结果为:
小青
随机选取 [ 3 ] 个用户,结果为:
小橙
小绿
小紫
随机选取 [ 7 ] 个用户,结果为:
小红
小橙
小黄
小绿
小青
小蓝
小紫