我需要生成一个随机的4位数字,但在代中排除8和9。
这是我现在使用的代码,但它显然不排除8和9,
rand(pow(10, 4 - 1), pow(10, 4) - 1);
答案 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);