PHP:使用str_pad无法正常工作?为什么?

时间:2013-02-04 14:45:07

标签: php string-concatenation

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

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

结果再次为“24896”,左侧没有添加零。我在这里错过了什么吗?

谢谢!

6 个答案:

答案 0 :(得分:12)

str_pad()的第二个参数占用最终字符串的全长;因为你传递4并且$myString的长度是5,所以不会发生任何事情。

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

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

<强>更新

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

'0000' . $myString;

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

尝试

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

输出

000024896

答案 3 :(得分:0)

您在str_function中指定的长度小于输入字符串读取文档的正确值 试试这个会对你有用

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

然后你的长度将是你的字符串+5,实际是5 + 5 = 10;

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

$ test = str_pad($ myString,10,&#34; 0&#34;,STR_PAD_LEFT);

echo $ test;

输出: 0000024896

答案 4 :(得分: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

答案 5 :(得分:0)

首先制作打击垫并将其固定,假设您不知道它有多长。无需计算原始字符串的长度:

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

或更好

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