随机4位数字,不包括数字8和9

时间:2015-04-28 19:24:52

标签: php

我需要生成一个随机的4位数字,但在代中排除8和9。

这是我现在使用的代码,但它显然不排除8和9,

rand(pow(10, 4 - 1), pow(10, 4) - 1);

3 个答案:

答案 0 :(得分:3)

这也可以。

$allowedNumbers = range(0, 7);
$digits = array_rand($allowedNumbers, 4);
$number = '';
foreach($digits as $d){
    $number .= $allowedNumbers[$d];
}

echo $number;

这里的好处是您可以通过创建允许的数字数组来指定允许的字符。它还允许您包含数组中包含字母或单词的任何字符。

答案 1 :(得分:2)

这应该适合你:

在这里,我只使用mt_rand()得到随机数,然后将其转换为带有base_convert()的基数8(0-7,意味着没有8或9)。最后,我只需使用substr()获取前4位数字。

echo $number = substr(base_convert(mt_rand(), 10, 8), 0, 4);

答案 2 :(得分:2)

喜欢什么?

$randomNumber = rand(0,7) . rand(0,7) . rand(0,7) . rand(0,7);