我试图在循环中做一个数字(十进制)增量,看起来像001 002 003...123,124
,但找不到简单的解决方案。我现在想的是检查数字是否很长足够的,如果不是前缀一些“0”。但它似乎不好。任何更好的想法?
感谢。
答案 0 :(得分:4)
$x = 6
$y = sprintf("%03d",$x);
答案 1 :(得分:1)
for($i=1;$i<1000;$i++){
$number = sprintf("%03d",$i);
echo "$number <br />";
}
答案 2 :(得分:1)
立即想到两个选项。首先,尝试str_pad()
。它完全符合您的描述。
其次,你可以像其他人所建议的那样使用sprintf()
。
答案 3 :(得分:1)
如果您不确定各种数字将会持续多长时间(例如,它们是动态确定的,并且无法知道它们将会发生什么事情),您可以使用以下代码:
<?php
$numbers = array();
for ($i = 0; $i < 2000; $i++)
{
$numbers[] = $i;
}
array_walk($numbers, function(&$item, $key, $len) { $item = sprintf('%0'.$len.'d', $item); }, strlen(max($numbers)));
print_r($numbers);
?>