我一直在尝试使用过程代码生成不同的随机数。但我没有做到。请在这方面帮助我。提前谢谢。
<?php
$rnd_array = array(0,0,0,0,0,0,0,0,0,0);
$a = 1;
for ($i=0; $a <= 10 ; $i++)
{
echo $rnd = rand() % 10;
echo "'t 't";
for ($j=0; $j < 10 ; $j++)
{
if ($rnd == $rnd_array[$j])
{
$flag = true;
break;
}
else
{
$flag = false;
}
}
if ($flag == false)
{
$rnd_array[$a] = $rnd;
$a++;
}
}
echo "<br> <br>";
for ($k=0; $k < 10 ; $k++)
{
echo $rnd_array[$k];
echo "'t 't";
}
?>
我会使用一个稍微不同的逻辑 - 从一个空数组开始,生成一个随机数,如果数组尚未包含它,则将其放入数组中。重复此操作,直到数组包含所需数量的元素。
下面是一个简单的示例:
$num = 10;
$min = 1;
$max = 100;
$array = [];
while (count($array) < $num) {
$random = mt_rand($min, $max);
if (!in_array($random, $array)) {
$array[] = $random;
}
}
10 个不同的随机数
<?php
$numbers = array();
$i = 0;
while($i < 10){
$new = rand();
$known = false;
foreach($numbers as $key => $value){
if($value == $new ){
$known = true;
break;
}
}
if(!$known){
$numbers[$i]=$new;
$i++;
}
}
var_dump($numbers);
?>
因为数组长度等于生成的随机值的范围
$rnd_array = range(0,9);
shuffle($rnd_array);
print_r($rnd_array);
Array
(
[0] => 9
[1] => 0
[2] => 5
[3] => 3
[4] => 6
[5] => 4
[6] => 2
[7] => 7
[8] => 1
[9] => 8
)