随机数,长度为15个字符且为正数

时间:2013-01-02 23:45:49

标签: php random

我正在尝试使用php制作长度正好为15个字符的正确的随机数字。我尝试了rand(100000000000000, 900000000000000),但它仍然会生成负数和小于15的数字。是否还有其他可以执行此操作的函数,或者我应该只使用rand(0, 9) 15次并连接结果?

4 个答案:

答案 0 :(得分:9)

$i = 0;
$tmp = mt_rand(1,9);
do {
    $tmp .= mt_rand(0, 9);
} while(++$i < 14);
echo $tmp;

答案 1 :(得分:3)

您使用的是32位平台。要处理这些整数,您需要一个64位平台。

你可以做两次rand并将其保存为字符串,如下所示:

$num1 = rand(100000,999999);
$num2 = rand(100000,999999);
$num3 = rand(100,999);
$endString = $num1.$num2.$num3;

PS。我比我的更喜欢跳跳虎解决方案。

答案 2 :(得分:1)

你走了。

function moreRand($len) { 
    $str = mt_rand(1,9);
    for($i=0;$i<$len-1;$i++) { 
        $str .= mt_rand(0, 9);
    }
    return $str;
}
echo moreRand(15); 

编辑:如果你想削减.00045s的执行时间,

 function randNum() { return abs(rand(100000000000000, 900000000000000)); }

答案 3 :(得分:1)

请记住,这将返回一个字符串,而不是实际的整数值。

function randNum($length)
{
    $str = mt_rand(1, 9); // first number (0 not allowed)
    for ($i = 1; $i < $length; $i++)
        $str .= mt_rand(0, 9);

    return $str;
}

echo randNum(15);