2

我有一个整数,需要将其转换为 4 位字符串。我知道整数介于 1 和 9999 之间。如果数字是 4,我希望输出字符串为“0004”。如果数字是 134,我需要将字符串输出为“0134”等等。

在 PHP 中实现这一目标的最短最优雅的方法是什么?谢谢你。

4

6 回答 6

12

我会使用sprintf()

$string = sprintf( "%04d", $number);

使用这个演示

foreach( array( 4, 134) as $number) {
    $string = sprintf( "%04d", $number);
    echo $string . "\n";
}

你得到作为输出:

0004
0134
于 2013-04-12T13:21:24.763 回答
3

尝试这个

 $num = 1;
 $paddedNum = sprintf("%04d", $num);
 echo $paddedNum;
于 2013-04-12T13:21:39.423 回答
2

尝试这个

str_pad($input, 4, "0", STR_PAD_LEFT);

这适用于整数和字符串

于 2013-04-12T13:23:42.990 回答
1
$num = rand(1,9999);
echo sprintf( "%04d", $num);

尝试这个。

于 2013-04-12T13:28:30.863 回答
1

http://php.net/manual/de/function.str-pad.php

$input = 9;
$str = str_pad($input, 4, "0", STR_PAD_LEFT); //results in 0009
于 2013-04-12T13:23:49.990 回答
1

您可以将 sprintf 与 %d 选项一起使用:

$NewString = sprintf( "%04d", $OldNumber);

04 告诉 sprintf 您的号码应该是多少位数,如果没有达到该号码,将用零填充。

于 2013-04-12T13:24:52.610 回答