Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php将数字格式化为前导零_Php - Fatal编程技术网

php将数字格式化为前导零

php将数字格式化为前导零,php,Php,我想将数组变量的格式设置为10以下的数字有前导零,因此: $myArray=array(1,2,3,10,11,100); 因此: $myArray=array(01,02,03,10,11,100); 有没有一个简单的功能 提前感谢。打印时最好添加0,否则会将其转换为字符串: $myArray=array(1,2,3,10,11,100); foreach ($myArray as $number){ printf("%02d\n", $number); } 在php中,前导零

我想将数组变量的格式设置为10以下的数字有前导零,因此:

$myArray=array(1,2,3,10,11,100);
因此:

$myArray=array(01,02,03,10,11,100);
有没有一个简单的功能


提前感谢。

打印时最好添加0,否则会将其转换为字符串:

$myArray=array(1,2,3,10,11,100);

foreach ($myArray as $number){
    printf("%02d\n", $number);
}

在php中,前导零表示数字是八进制数

您应该在输出时将其格式化,如下所示:

$myArray=array(1,2,3,10,11,100);
foreach ($myArray as $var) {
  echo sprintf("%02d\n", $var);
}

这允许您将所有值填充到可变长度

请记住,前导零不是有效的整数表示形式。出于可移植性的原因,如果要存储值,则应将值转换为字符串

$myArray = array(1,2,3,10,11,100);
$pad_length = 2;

foreach ($myArray as &$item)
{
    $item = str_pad($item, $pad_length, '0', STR_PAD_LEFT);
}

print_r($myArray);
产出:

Array
(   
    [0] => 01
    [1] => 02
    [2] => 03
    [3] => 10
    [4] => 11
    [5] => 100
)

我更愿意将我自己的可扩展功能扩展到您想要使用的任何其他长度。 举个例子

function format3($number){
   if($number>99){$number=$number;}
     else{ if($number>9){$number="0".$number;} 
      else{$number="00".$number;
         }
     }
  return $number;
} 
只需调用format3(/your value/)就可以看到您的值以三位数字显示 $value=3 echo format3($value)//显示003
您可以扩展最长模式formatX()的函数。

不要这样做。在输出时添加前导零,而不是teadok,我想到的一种方法是
if(strlen($var)==1)$var=“0”。$var但是有更好的方法吗?字符串很好-它实际上是时间“01:59:59”,所以无论如何我将是strotime。如果您最终通过
strotime()
传递值,那么为什么要事先添加零呢?