我知道rand(1,10);会生成1到30之间的随机数。
我该如何编写从一组数字(例如1、7、8和9)中选择一个随机数的代码?
有可能吗?
我很确定将rand设置为仅生成一定范围内的数字吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以将一组数字放入一个数组,然后使用array_rand
或shuffle
选择其中一个。例如:
$nums = array(1, 7, 8, 9);
$key = array_rand($nums);
echo $nums[$key] . PHP_EOL;
shuffle($nums);
echo $nums[0] . PHP_EOL;
答案 2 :(得分:0)
第一件事是rand(1,10)
会在1 to 10
而非1 to 30
之间生成一个数字。
从一组数字中,您可以像这样生成
$numbers = [1,7,8,9];
echo $numbers[rand(0,3)]
答案 3 :(得分:0)
我会这样处理。创建一个循环,该循环用您要查找的范围(您的数字组)中的随机数填充数组。之后,您可以在该数组中选择一个随机索引,它是一组数字中的随机数。
$min = 0;
$max = 10;
$group_size = 5;
$rand_group = array();
for($i = 0; $i < $group_size; $i++) {
$rand_group[$i] = rand($min,$max);
}
echo $rand_group[rand($min,$max)];
答案 4 :(得分:0)
使用此功能(或内联代码)
function SelectElementByRandom ( $list )
{
return count($list) ? $list[ rand(0,count($list)-1) ] : NULL;
}
?:
运算符可确保结果为(NULL),即使列表为空。
以您的示例为例:
$result = SelectElementByRandom(array(1,7,8,9));