2016-11-30 70 views
2

之前如果我的循环运行3次,然后输出为0001,2,3,但我需要循环删除零整数

0001 
0002 
0003 

我如何获得这个输出?

$i='0001'; 
foreach($test as $rows){ 
    echo $i; 
    echo '<br/>'; 
    $i++; 
} 
+0

开始用'$ I = 1',** **然后你可以在需要时显示它们添加前导零。 – Federkun

回答

1

您可以使用str_pad()

$i = "0001"; 
for($j=0;$j<1000;$j++) { 
    echo str_pad($i++, 4, '0', STR_PAD_LEFT); 
    echo "<br/>"; 
} 
4

使用printf填充符,例如:

$test = range(1,11); 

$i = 0; 
foreach ($test as $rows) { 
    printf("%04d<br/>\n", ++$i); 
} 

输出

0001<br/> 
0002<br/> 
0003<br/> 
0004<br/> 
0005<br/> 
0006<br/> 
0007<br/> 
0008<br/> 
0009<br/> 
0010<br/> 
0011<br/> 

在这个例子中,04是填充符这意味着数(d )填充最多4个零。

+0

尽可能好,我会说。 –

0

你可以骗一点点,

$i = "1"; 
$y = "000"; //Added this 

while ($i < 4){ 
    echo $y . $i; 
    $i++; 
} 

基本上你在每一次号码前回声000。

+2

好..如果循环运行超过9次,结果将变成'00010'这可能不是OP想要的东西。 Ruslans的回答可能更适合OPs的需求。 编辑:好吧,我刚刚意识到Ruslans的答案也会输出00010。 (edit2:不是在编辑后) – Cashbee

+0

if($ i> = 10){做点什么}。但你可能是对的:) – Mitch

+0

不是一个好的解决方案。 –