2011-05-05 86 views
3

我有一个项目,我不得不从00000至99999 随机化产生的随机数是不是我卡住,但它总是需要5个字符是事实。因此,当它产生的14号,我想把它当作00014.生成与领先的整数0的

什么是实现这一目标的最佳途径?

回答

11

sprintf()能做到这一点:

echo sprintf('%05d', 0); 

或者使用str_pad() - 但这是在代码一点点长:

echo str_pad(0, 5, 0, STR_PAD_LEFT); 
6

str_pad()能够做你需要做的代码。

简单:

$s = str_pad('14', 5, '0', STR_PAD_LEFT); 
+0

感谢的人,但我会与斯特凡的答案去。 – priktop 2011-05-05 10:56:29

0

即使substr()可以做到这一点:

print substr('0000' . $myRandomNumber, -5); 

(不,我会推荐这只是想贡献:))

3

生成整数前导0

整数永远不会有前导0。

如果您需要前导0您NEDD到整数转换为字符串的 - >看到thephpdeveloper答案。例如,将前导0的数字写入数据库是正确的方法。

如果您喜欢使用该整数(例如用于计算),最好将整数保留为整数(不要更改为字符串),并且每次需要输出这些数字时 - >从“斯特凡格里克”

+0

好点。只有[八进制/十六进制](http://php.net/manual/en/language.types.integer.php)是带有(一个)前导'0'的文字整数。 – jensgram 2011-05-05 11:02:53

+0

二进制文件也可以有一个0领先:0001是一样的0000001 ;-) – 2011-05-05 11:15:12

+0

这会是相同的话说十进制0001相同的十进制0000001.前导零不显著。 – BoltClock 2011-05-06 00:29:34