循环在整数之前删除零[重复]

Posted

技术标签:

【中文标题】循环在整数之前删除零[重复]【英文标题】:Loop Removes Zero Before Integer [duplicate] 【发布时间】:2017-04-14 19:19:33 【问题描述】:

如果我的循环运行 3 次,则输出为 0001,2,3,但我需要

0001
0002
0003  

我如何得到这个输出?

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

【问题讨论】:

$i = 1开头,然后您可以在需要显示它们时添加前导零。 【参考方案1】:

使用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 个零。

【讨论】:

尽其所能,我会说。【参考方案2】:

你可以作弊一点,

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

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

基本上你每次都在数字前面回显 000。

【讨论】:

好吧.. 如果循环运行超过 9 次,结果将变成类似于 '00010' 的东西,这可能不是 OP 想要的。 Ruslans 的答案可能更适合 OP 的需求。编辑:好吧,我刚刚意识到 Ruslans 的答案也会输出 00010 。 (edit2:不是在他的编辑之后) 如果 ($i >= 10)做某事。但你可能是对的:) 不是一个很好的解决方案。 没错,但它是一个。我认为鲁斯兰的回答是最好的。【参考方案3】:

您可以使用str_pad()

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

【讨论】:

以上是关于循环在整数之前删除零[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在删除之前等待重复的 CAAnimation 完成一个循环

循环没有捕获重复项并在 Android(Java) 中删除它们

如何在 PHP 整数中保留前导零 [重复]

整数除法总是零[重复]

在C中保持前导零[重复]

在JavaScript中将整数转换为数组的简单方法[重复]