我当前的代码生成介于34和76之间的116个随机数,并将它们放入一个名为$common的数组中。
for($i = 0; $i < 116; $i++){
$common[] = mt_rand(34, 76);
}
有可能从两组数字中生成一个随机数吗?例如,我想让它选择116个介于1-22和34-76之间的随机数。
1。有一种方法:
for($i = 0; $i < 116; $i++){
$common[] = array(mt_rand(1, 22), mt_rand(34, 76))[mt_rand(0, 1)];
}
- 创建一个由两个随机数组成的数组,每个范围一个
- 随机选取数组索引0或1
2.我很无聊,还有一个:
$range = array_merge(range(1, 22), range(34, 76));
for($i = 0; $i < 116; $i++){
$common[] = $range[array_rand($range)];
}
- 创建两个范围内的数字数组
- 循环并从范围中随机选择
在第二个示例中,您也可以使用:
$common[] = $range[mt_rand(0, count($range)-1)];
3.我在等午饭,所以这里有另一个,类似于第一个:
for($i = 0; $i < 116; $i++){
$common[] = mt_rand(0, 1) ? mt_rand(1, 22) : mt_rand(34, 76);
}
- 如果随机假0,则从第一个范围生成
- 如果随机真值为1,则从第二范围生成