2010-04-18 22 views
4
$i=0000; 
while($i<=1231) 
{ 
    print "$i"; 
    $i++; 
} 

我希望它显示0001000200030004, 而是它打印: 012如何将0000加1并保持格式化?

有谁知道这是为什么不工作?
预先感谢您。

回答

1

的sprintf(),str_pad()

10

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

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

只有一个办法......你也可以使用sprintf

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++; 
} 
?> 
1

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

相关问题