【发布时间】:2017-12-19 23:30:33
【问题描述】:
我正在尝试在 PHP 中创建一个随机数生成器。它应该一次生成三 (3) 个数字,无需重复。也就是说,3个数字不可能相同。
这是我迄今为止尝试过的:
$array = [];
$A = mt_rand(1,36);
$array[0] = $A;
$B = mt_rand(1,36);
$array[1] = $B;
if(in_array($B,$array)){
$B = mt_rand(1,36);
$array[1] = $B;
}
$C = mt_rand(1,36);
$array[2] = $C;
if(in_array($C,$array)){
$C = mt_rand(1,36);
$array[2] = $C;
}
$length = count($array);
//display the array values;
for($i = 0; $i < $length; $i++){
echo ($array[$i]."<br>");
}
谁能告诉我哪里出错了?
【问题讨论】:
-
我会使用一个循环,一个数组,将随机数放入数组键中,然后循环告诉它有 3 个项目。重复的密钥自然会被覆盖。
-
问题是,您正在检查
$B和$C是否只有一次in_array,但没有人保证您第二次不会再次获得相同的号码。 -
在将数字放入数组后检查它是否在数组中没有多大意义。首先将 if 移到 in_array 之前。之后,您需要担心“猜测”重复两次或更多次。但一步一步。