简单的random()问题

时间:2009-10-23 14:01:28

标签: php text random format pad

我需要一个随机的4位数字

现在我正在使用rand(1000,9999)总是给我一个4位数字,但我消除了0000-0999作为可能的结果。

如何填充随机数?

(这也最终将被添加到字符串中我需要将int作为字符串强制转换吗?)

感谢

5 个答案:

答案 0 :(得分:12)

在像PHP这样的脚本语言中,你不必在99%的情况下进行投射。

填充可以使用

完成
sprintf("%04u", rand(0, 9999));

<强>说明

sprintf的第一个参数指定格式

  • %留下第二,第三,第四等论点。第一个%被第二个参数替换,第二个%被第三个参数替换。
  • 0停留在左侧填充0的行为。
  • 4停留“至少应打印4个字符”
  • u保留无符号整数。

答案 1 :(得分:6)

sprintf("%04d", rand(0,9999))

应该做你想做的事情

答案 2 :(得分:3)

快速而肮脏......怎么样:

rand(10000,19999)

并取最后四位数字:

substr(rand(10000, 19999), 1, 4)

答案 3 :(得分:3)

str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);

使用mt_rand()而不是rand(),它会更好。

答案 4 :(得分:1)

您可以使用str_pad()sprintf()格式化字符串:

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);