【问题标题】:How to count with 0如何用 0 计数
【发布时间】:2010-11-28 17:02:12
【问题描述】:

我想用0来计数。我的意思是如果

$x = 002 $y = 999

现在我想通过保留 00 来计算它。

for ( $i = $x ; $i <= $y; $i++ )
{
   echo $i;
}

但它会回显 - 002、3、4、5

我希望它通过保留 00 来计数。就像 005、006、007、008、009、010、011、012 一样。

【问题讨论】:

  • 在变量中添加前导零时必须小心。开头的 O 使 PHP 将该值用作八进制数。它对 00-07 没有任何影响,但对于其他值,您可能会得到意想不到的结果。因此,您应该将$x 初始化为2,并在打印输出时添加前导零。

标签: php count for-loop


【解决方案1】:
for ($i = $x ; $i <= $y; $i++)
{
    printf('%03d', $i);
}

【讨论】:

  • 谢谢,但它可能会出错,因为 $x 的长度是动态的。虽然我用 $size = strlen ($x); for ($i = $x ; $i
  • 是的,你用动态尺寸描述的也可以。
  • 循环中的$i$x$y 应该是普通数字(1、2、...)而不是零填充(001、002、...)。尽管无论如何它们在第一次迭代后都会转换为常规数字。
【解决方案2】:

(s)printf 是你的朋友,手册页上有很多有用的例子,但你会想要:

printf('%03d', $i);

【讨论】:

    【解决方案3】:

    这个想法是你不要那样计算它,你只是那样展示它。我希望您理解 00 仅用于演示。干杯。

    【讨论】:

      【解决方案4】:

      使用 printf:

      for ( $i = $x ; $i <= $y; $i++ ) {
          printf("%03d", $i);
      }
      

      【讨论】:

        【解决方案5】:

        试试

           printf('%03d', $i)
        

        并链接到manual

        干杯

        【讨论】:

          【解决方案6】:

          printf("%03d", $i);

          【讨论】:

            【解决方案7】:

            尝试使用数字格式

            参考这里:http://us2.php.net/manual/en/function.number-format.php

            只需滚动底部即可。

            最好的问候

            【讨论】:

              【解决方案8】:

              str_pad方法:

              echo str_pad($i, 3, '0', STR_PAD_LEFT);
              

              【讨论】:

                【解决方案9】:

                如果 $i 是整数,则不能这样做。第一次分配 $i 时,它存储为字符串,执行 $i++ 后,它转换为整数。

                如果您必须保持原始格式,请将 $i 视为字符串并使用自定义函数对 $i 进行所有算术运算,而不是内置整数算术。

                最简单的解决方案是让 $i 为整数,并在输出 $i 时添加前导零。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-11-11
                  • 2021-10-23
                  • 1970-01-01
                  • 2013-07-06
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多