6

我有一个字符串,它的内容是“24896”。现在我想在左边添加一些零,所以我尝试了:

$test = str_pad($myString, 4, "0", STR_PAD_LEFT);

结果又是“24896”,左边没有添加零。我在这里错过了什么吗?

谢谢!

4

6 回答 6

13

的第二个参数str_pad()取最终字符串的全长;因为你通过了 4 并且长度$myString是 5,所以什么都不会发生。

您应该选择至少比示例值大一的宽度,例如:

str_pad($myString, 9, '0', STR_PAD_LEFT);
// "000024896"

更新

这可能很明显,但是如果您总是希望在前面有 4 个零$myString

'0000' . $myString;
于 2013-02-04T14:46:47.837 回答
2

因为您将其填充到长度 4,并且您的字符串长度24896为 5 个字符,因此它不需要填充任何内容,因为它已经超过 4 个字符长。

函数中的第二个参数str_pad是字符串的新长度。

于 2013-02-04T14:46:51.543 回答
2

尝试

$myString = "24896" ;
$test = str_pad($myString, strlen($myString) + 4, "0", STR_PAD_LEFT);
echo $test;

输出

000024896
于 2013-02-04T14:47:18.063 回答
1

假设您不知道它有多长,请先制作垫子并附上它。无需计算原始字符串的长度:

$x = 4;
$pad = str_pad('', $x, '0');
$test = $pad.$myString;

或更好

 $x = 4;
 $test = str_pad('', $x, '0').$myString;
于 2016-11-29T09:01:36.197 回答
0

您在 str_function 中指定的长度小于输入字符串阅读文档正确尝试这个它会为您工作

您的字符串是 5 个字符,例如 $myString=24896; 现在你想在左边加 5 个零

那么你的长度就是你 string + 5 实际是 5+5=10;

现在将它传递给函数你的函数将是这样的

$test = str_pad($myString, 10, "0", STR_PAD_LEFT);

回声$测试;

输出:0000024896

于 2014-12-09T05:57:42.997 回答
0

您要添加多少个零?没有添加零,因为填充长度小于给定的 $myString 长度。

请试试这个

$number = 24896; 
$number = sprintf('%06d', $number); 
echo $number;

或使用这个

$number = 24896;
$number = str_pad($number, 6, '0', STR_PAD_LEFT);//here 6 is padding length
echo $number;

输出

024896
于 2016-02-03T06:46:09.283 回答