将我的变量$result
视为01212
....现在,如果我将1
添加到我的变量中,我会得到答案1213
,但我希望它是01213
....我的PHP代码是
echo sprintf('%02u', ($result+1));
修改
此问题的答案有效..但如果我的变量$result
为0121212
会怎样?
将来...
答案 0 :(得分:3)
您可以在%05u
%02u
echo sprintf('%05u', ($result+1));
修改强>
概括它:
<?php
$result = "0121211";
$len = strlen($result+1) + 1;
printf("%0${len}d", ($result+1)); // print 0121212
?>
答案 1 :(得分:1)
str_pad($result, 5, "0", STR_PAD_LEFT);
答案 2 :(得分:1)
也许我在这里遗漏了一些东西,但它可能就像
一样简单$result = '0'. ($result+1);
编辑:
$test = array('01212', '0121212', '012121212121212', '-01212');
foreach( $test as $result ) {
$result = '0'.($result+1);
echo $result, "\n";
}
打印
01213
0121213
012121212121213
0-1211
(你看,有限制;-))
答案 3 :(得分:0)
请在此处阅读:http://php.net/manual/en/function.sprintf.php
在sprintf中,你还必须指定你想要的长度 - 所以在你的情况下,如果你想要任何数字显示5chars长,你必须写
echo sprintf ('%05d', $d); // 5 places taking decimal
甚至更好
printf ('%05d', $d);
答案 4 :(得分:0)
好像你想在数字前面加一个'0',所以这里最简单:P
echo '0'. $result;
或者如果您坚持使用sprintf
:
$newresult = $result + 1;
echo sprintf('%0'.(strlen(strval($newresult))+1).'u', $newresult);