PHP使用rand在特定数字之间选择

时间:2019-04-25 14:39:37

标签: php

我知道rand(1,10);会生成1到30之间的随机数。

我该如何编写从一组数字(例如1、7、8和9)中选择一个随机数的代码?

有可能吗?

我很确定将rand设置为仅生成一定范围内的数字吗?

5 个答案:

答案 0 :(得分:0)

您可以创建所需的自定义数组,随机播放并获得第一个值

$temp = [1,7,8,9];
shuffle($temp);
echo $temp[0];

shuffle-随机排列数组

Demo

答案 1 :(得分:0)

您可以将一组数字放入一个数组,然后使用array_randshuffle选择其中一个。例如:

$nums = array(1, 7, 8, 9);
$key = array_rand($nums);
echo $nums[$key] . PHP_EOL;

shuffle($nums);
echo $nums[0] . PHP_EOL;

Demo on 3v4l.org

答案 2 :(得分:0)

第一件事是rand(1,10)会在1 to 10而非1 to 30之间生成一个数字。

PHP RAND FUNCTION

从一组数字中,您可以像这样生成

$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));