我有一个php脚本,它创建一个随机的10位序号:
// Assign order number length
$digits = 10;
// Create random order number to be stored with this order
$order_number = rand(pow(10, $digits-1), pow(10, $digits)-1);如何防止在随机10位数字中包含数字0 0?提前感谢!
发布于 2013-09-28 23:49:24
您可以使用这样一个简单的函数:
function getRandom($length) {
$numbers = '';
for($i = 0; $i < $length; $i++) {
$numbers .= rand(1, 9);
}
return $numbers;
}
echo getRandom(10);发布于 2013-09-28 23:48:25
您可以进行花哨的基转换,但最后,最简单的方法是只获得一个字符串:
function random_string($count, $available) {
$result = '';
$max = strlen($available) - 1;
for($i = 0; $i < $count; $i++) {
$result .= $available[rand(0, $max)];
}
return $result;
}
…
$order_number = random_string($digits, '123456789');发布于 2013-09-29 00:08:38
你可以把它看成是一个9基的数目
base_convert(rand(0, pow(9, $digits) - 1), 10, 9)这将给出数字从0到8的数字。
现在,只要把1加到每一个数字上,就可以使它变成1比9。
(pow(10, $digits) - 1) / 9会给你一个满是数字的数字。现在,只要将它添加到以前的数字中,就可以了:
$digits = 10;
$order_number = (pow(10, $digits) - 1) / 9 + base_convert(rand(0, pow(9, $digits) - 1), 10, 9);https://stackoverflow.com/questions/19072884
复制相似问题