我有一个字符串,其内容为“24896”。现在我想在左侧添加一些零,所以我尝试了:
$test = str_pad($myString, 4, "0", STR_PAD_LEFT);
结果再次为“24896”,左侧没有添加零。我在这里错过了什么吗?
谢谢!
答案 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;