我想以3位数格式增加一个值。
例如:
$start_value = 000;
while () {
do something;
$start_value++;
}
通过这种方式我得到了这个结果:
$start_value = 000;
$start_value = 1;
$start_value = 2;
$start_value = 3;
等等
而不是'001', '002', '003'
我如何才能完成这个结果?
答案 0 :(得分:10)
使用sprintf
您可以通过以下方式完成此任务:
echo sprintf("%03d", $start_value++) . "<br>";
希望这就是你所追求的。
使用您的代码实现它:
$start_value = 000;
while () {
do something;
$start_value = sprintf("%03d", $start_value++);
}
答案 1 :(得分:4)
你在这里犯了大错。代码中的000
是八进制数。在许多编程语言中以0开头的任何文字编号都被视为八进制文字。如果你想存储000,你需要一个字符串,而不是一个数字。
$start_value = "000";
while((int) $start_value /*--apply condition --*/) {
do something;
$start_value = str_pad((int) $start_value+1, 3 ,"0",STR_PAD_LEFT);
}
答案 2 :(得分:0)
就是这样。在PHP中,没有数据类型的概念,所有内容都是在运行时根据其使用位置和方式确定的。
<?php
$start_value = 000;
while ($start_value < 10) {
//your logic goes here
$start_value++;
printf("[%03s]\n",$start_value);
}
?>
输出:[001] [00] [00] [00] [00] [00] [009] [00] [010]
所以你可以做所有的计算。无论您想要打印哪个值,都可以使用带格式说明符的printf。!!希望它有所帮助。