php中的数字表示问题

时间:2010-05-12 10:14:27

标签: php string integer numbers

这是一件简单的事情,但我没有得到答案。

我生成的自动生成id连接年份100001,100002就是这样,在这10年是0001年是自动生成数字。当我分割年份和数字然后为0001增加一个值是2但我需要为0002。

Adding value is 0001+1, 0002+1, 0010+1, 0099+1

Now the answer are 2, 3, 11, 100 like that

But i need like that 0002,0003,0011,0100

提前致谢。

3 个答案:

答案 0 :(得分:4)

$var = sprintf ('%04d', $var);

请参阅sprintf manual

答案 1 :(得分:1)

0001不是数字,它是一个字符串。当你向它添加1时,PHP将其转换为数字(1),然后将其加1,所以最终得到2.你要做的是用0填充数字,将其转换回字符串。您可以像其他人建议的那样使用sprintf,或者使用str_pad。

str_pad(1, 4, '0', STR_PAD_LEFT);

答案 2 :(得分:0)

您可以使用优秀的旧版sprintf来格式化数字。

$a = 1;
$f = sprintf("%06s", $a);
echo $f;

应打印“000001”。

文档:http://php.net/manual/en/function.sprintf.php