string中的零填充数字

我需要单个数字(1到9)到(01到09)。 我可以想出一个方法,但它的大,丑和繁琐。 我确定必须有一些简洁的方法。 有什么build议么

首先,你的描述是误导性的。 Double是一个浮点数据types。 你可能想要用string中的前导零填充你的数字。 下面的代码是这样做的:

 $s = sprintf('%02d', $digit); 

有关更多信息,请参阅sprintf的文档。

还有str_pad

 <?php $input = "Alien"; echo str_pad($input, 10); // produces "Alien " echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien" echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___" echo str_pad($input, 6 , "___"); // produces "Alien_" ?> 

使用str_pad解决scheme:

 str_pad($digit,2,'0',STR_PAD_LEFT); 

基准在PHP 5.3

结果str_pad:0.286863088608

结果sprintf:0.234171152115

码:

 $start = microtime(true); for ($i=0;$i<100000;$i++) { str_pad(9,2,'0',STR_PAD_LEFT); str_pad(15,2,'0',STR_PAD_LEFT); str_pad(100,2,'0',STR_PAD_LEFT); } $end = microtime(true); echo "Result str_pad : ",($end-$start),"\n"; $start = microtime(true); for ($i=0;$i<100000;$i++) { sprintf("%02d", 9); sprintf("%02d", 15); sprintf("%02d", 100); } $end = microtime(true); echo "Result sprintf : ",($end-$start),"\n"; 
 "0$digit" 

..如果你已经知道它的单个数字!