如何将0000增加1并保持格式化?

时间:2010-04-18 07:12:24

标签: php

$i=0000;
while($i<=1231)
{
  print "$i";
  $i++;
}

我希望它显示0001000200030004, 但它打印: 012

有谁知道为什么这不起作用?
提前谢谢。

5 个答案:

答案 0 :(得分:10)

尝试使用printf("%04s",$i);

答案 1 :(得分:4)

print str_pad($i,4,'0',STR_PAD_LEFT);

只是一种方式......你也可以使用sprintf

答案 2 :(得分:3)

在考虑增量时,PHP将字符串0000视为数字0。 ++增量运算符实际上也可以处理普通字符串,但由于PHP的类型处理,它在这种情况下无法正常工作。但是,如果您已使用a0000之类的字符串开始,那么递增它将导致a0001。例如:

<?php
$var = 'a0000';
for ($i = 0; $i < 100; $i++)
{
    $var++;
}
echo $var; // Outputs a0100
?>

虽然,由于这种使用递增运算符的方法有点不正统,我建议在这种情况下使用printf("%04d", $var)(或sprtinf())来输出。例如:

<?php
$var = 0;
for ($i = 0; $i < 100; $i++)
{
    printf('%04d ', $var);
    $var++;
}
?>

答案 3 :(得分:1)

sprintf(),str_pad()

答案 4 :(得分:1)

试试这个$x = str_pad($z + 1, 5, 0, STR_PAD_LEFT);

相关问题