PHP for循环从一个小数点开始,但在开始时要求0


php for loop start with single decimal but required 0 in start

通常php for循环输出是1,2,3,4,5,6,7,8,9,10,11,但我在XML RPC代码中工作,其中日期使用如01,02,03,04,05,06,07,08,09

for ($i=1; $i<=20; $i++){
  echo "The number is " . $i . "<br />";
  }

输出:123.4567891011121314151617181920

,但我的要求是0102030405060708091011121314151617181920

str_pad

for ($i=1; $i<=20; $i++){
  echo "The number is " . str_pad($i,2,0,STR_PAD_LEFT) . "<br />";
  }

你总是可以运行一些代码来检查它是否只有一个数字(意思是小于10)

之类的
for ($i = 1; $i <= 20; $i++){
  if($i < 10) :
    echo "The number is " . '0' . $i . "<br />";
  else:
    echo echo "The number is " . $i . "<br />";
  endif;
}

我在if语句中使用了语法糖,但是您也可以很容易地将冒号替换为花括号!希望这对你有帮助!

您可以使用str_pad将1-9之间的数字用0填充

$value = $i;
if ($i < 10) {
$value = str_pad($i, 2, "0", STR_PAD_LEFT);
echo "The number is " . $value  . "<br />";
}

我会使用printf:

 for ( $i = 1; $i <= 20; $i++ ){
     printf( "The number is %02u <br />'n", $i );
 }

02指定前导字符("0")的最小数目(2)。如果你需要更多的前导零,只需改变数字。我认为这是最易读的语法