php格式化一个数字,使其具有前导零

时间:2012-03-16 11:48:40

标签: php

我想将我的数组变量格式化为十个以下的数字有前导零,所以:

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

所以它是:

$myArray=array(01,02,03,10,11,100);

这有一个简单的功能吗?

提前致谢。

4 个答案:

答案 0 :(得分:5)

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

您应该在输出时将其格式化为:

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

答案 1 :(得分:4)

打印时添加0会更好,否则将它们转换为字符串:

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

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

这里的键盘http://codepad.org/a3Bl4TeA

答案 2 :(得分:4)

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

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

$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
)

答案 3 :(得分:0)

我更喜欢将自己的可扩展功能设置为您想要使用的任何其他长度。 这里例如

function format3($number){
   if($number>99){$number=$number;}
     else{ if($number>9){$number="0".$number;} 
      else{$number="00".$number;
         }
     }
  return $number;
} 

只需调用format3(/ 您的值 /)即可看到您的值以三位数显示 $值= 3 echo format3($ value)//显示003 您可以扩展最长模式formatX()

的功能