-1

嗨,我正在生成一个随机整数mt_rand(1, 99999),如果它不等于 5 位,它将在整数的前面添加 0。

这是我的第一次尝试:

$random_number = mt_rand(1, 99999);
$ran_len = strlen($random_number);

while ($ran_len != 5 ) {
$add_ran_num = str_pad($random_number, 1, "0", STR_PAD_LEFT);
}

echo $add_ran_num;
4

4 回答 4

7
printf('%05d', mt_rand(1, 99999));
于 2013-08-29T09:11:03.237 回答
4

你不需要也不需要strlen循环while

$random_number = mt_rand(1, 99999);
$add_ran_num = str_pad($random_number, 5, "0", STR_PAD_LEFT);
echo $add_ran_num;
于 2013-08-29T09:09:57.040 回答
1

这会做你想做的

$random_number = str_pad(mt_rand(1, 99999), 5, "0", STR_PAD_LEFT);
于 2013-08-29T09:11:21.763 回答
0

您不更新 的值$ran_len

$random_number = mt_rand(1, 99999);
$ran_len = strlen($random_number);

while ($ran_len != 5 ) {    
    $add_ran_num = str_pad($random_number, 1, "0", STR_PAD_LEFT);
    $ran_len = strlen($random_number);//<---
}

echo $add_ran_num;

因此循环是无限的。

于 2013-08-29T09:11:00.930 回答