1

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

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

你如何填充随机数?

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

谢谢

4

5 回答 5

12

在像 PHP 这样的脚本语言中,您不必在 99% 的情况下进行强制转换。

填充可以使用

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

解释

的第一个参数sprintf指定格式

  • %停留在第二个,第三个,第四个等参数。第一个%被第二个参数替换,第二个%被第三个替换,依此类推。
  • 00停留为向左填充的行为。
  • 4停留在“应打印至少 4 个字符”
  • u停留为无符号整数。
于 2009-10-23T14:05:37.167 回答
6
sprintf("%04d", rand(0,9999))

应该做你想做的

于 2009-10-23T14:05:35.750 回答
3

又快又脏……怎么样:

rand(10000,19999)

并取最后四位数字:

substr(rand(10000, 19999), 1, 4)
于 2009-10-23T14:04:46.917 回答
3
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);

使用 mt_rand() 代替 rand() 会更好。

于 2009-10-23T14:09:13.867 回答
1

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

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);
于 2009-10-23T14:08:00.017 回答