【问题标题】:For Loop starting from 0001 instead of 1 [duplicate]For 循环从 0001 开始而不是 1
【发布时间】:2012-08-31 16:47:28
【问题描述】:

我正在做一个从 0001 到 0999 的 for 循环

我怎样才能用 php.ini 做到这一点。到目前为止,我所得到的只是一个普通的 php for 循环。

【问题讨论】:

  • 您是否要回显 0001 到 0999 的值?如果是这样,请使用普通的 for 循环,但在回显时使用 sprintf() 来格式化值
  • 请更清楚您在寻找什么。您只是想获得前导零吗?

标签: php loops for-loop


【解决方案1】:

这样的?

for($i = 1; $i<=999; $i++){
    echo str_pad($i, 4, '0', STR_PAD_LEFT);
}

此外,您可以使用sprintf() 代替str_pad(),但我认为在这种情况下str_pad() 看起来比sprintf() 更清晰。

【讨论】:

    【解决方案2】:

    您要做的是正常循环并格式化输出:

    for( $i=1; $i<=999; $i++) {  
      $myformat = str_pad($i, 4, '0', STR_PAD_LEFT);         
      // do something with $myformat
    }
    

    【讨论】:

      【解决方案3】:

      试试那个代码:

      for($n=1;$n<=999;$n++)
      {
          $formatted_n = str_pad($n, 4, '0', STR_PAD_LEFT);
          // add some code here
      }
      

      Documentation for str_pad

      【讨论】:

        【解决方案4】:
        <?php
        
        for($i=1; $i<=999; $i++) {
         echo str_pad($i, 4, "0", STR_PAD_LEFT);
        }
        
        ?>
        

        【讨论】:

          【解决方案5】:

          这是一个使用sprintf()的版本:

          foreach (range(1, 999) as $i){
            echo sprintf("%04d", $i); 
          } // output: 000100020003...
          

          【讨论】:

            猜你喜欢
            • 2021-10-18
            • 2020-04-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-18
            • 1970-01-01
            • 2012-11-27
            • 1970-01-01
            相关资源
            最近更新 更多