2013-03-05 41 views
3

例如,我有这样的格式: $s_number = "12";而对于该输入,我需要0012作为输出:PHP数字格式4个位数

又如:

输入$s_number = "3"; 输出:0003

每次我需要4位数字时,我都希望发生这种情况。

+1

'printf'已经可以做到这一点很容易做到这一点:'的printf( “%04D” $号)'。如果你想要一个字符串的结果,还有'sprintf'。 – Jon 2013-03-05 21:23:50

+0

你有什么尝试?你有没有尝试使用类似sprintf的东西(http://www.php.net/manual/en/function.sprintf.php),或者只是根据字符串的长度来添加文本? – Mike 2013-03-05 21:23:50

回答

7

使用str_pad()为:

echo str_pad($number, 4, '0', STR_PAD_LEFT); 
+1

谢谢,我也有这个 成功$ p = substr(sprintf('%04d',$ digit),0,4); – Martelo2302 2013-03-05 21:29:14

+0

请注意,str_pad是**多**速度更快;) – hek2mgl 2013-03-05 21:30:08

+1

谢谢str_pad – 2017-10-31 11:20:47

11

这不会是一个数(但字符串),但你可以做到这一点使用str_pad。在你的例子:

$s_number = str_pad("12", 4, "0", STR_PAD_LEFT); 
$s_number = str_pad("3", 4, "0", STR_PAD_LEFT); 
1

您可以通过使用PHPS' printf

<?php 
$s_number = '12'; 
printf("%04d", $s_number); 
?> 

希望这有助于

+0

啊谢谢。完全忘了他们printf也打印出来(愚蠢的我cus它也是这个函数的名字) – Mic1780 2013-03-05 21:29:02