我正在尝试用最简单的代码来生成一个范围内的随机数但不包括一个数字,在这种情况下" 2"。
我真的需要一个" if" a"做"和"而#34;完成这个?
<!DOCTYPE html>
<html>
<body>
<?php
$x = rand(1,5);
if ($x == 2) {
do {
echo "The number is: $x <br>";
$x = rand(1,5);
} while ($x == 2);
}
echo "The number is: $x <br>";
?>
</body>
</html>
答案 0 :(得分:2)
你可以这样做:
$exclude = array(2);
while(in_array(($x = rand(1,5)), $exclude));
echo $x;
它起作用,因为rand可能会返回数组中的变量,然后重新触发while循环。
通过这种方式,您可以构建一个包含要排除的所有数字的数组。
答案 1 :(得分:0)
如果您只排除一个号码,请将其替换为您未包含在该范围内的可接受号码。
<!DOCTYPE html>
<html>
<body>
<?php
$x = rand(1,4); // accept 1, 2, 3 or 4 with equal probability
if ($x == 2) {
$x = 5; // if x = 2, change it to 5
}
echo "The number is: $x <br>";
?>
</body>
</html>