我试图做一个数字(十进制)增量,看起来像一个循环中的001 002 003...123,124
,并找不到一个简单的解决方案。我现在想的是检查数字是足够长的时间,如果不是前缀它一些“0”。但它似乎不好。任何更好的想法?自定义风格的数字增量
谢谢。
我试图做一个数字(十进制)增量,看起来像一个循环中的001 002 003...123,124
,并找不到一个简单的解决方案。我现在想的是检查数字是足够长的时间,如果不是前缀它一些“0”。但它似乎不好。任何更好的想法?自定义风格的数字增量
谢谢。
$x = 6
$y = sprintf("%03d",$x);
for($i=1;$i<1000;$i++){
$number = sprintf("%03d",$i);
echo "$number <br />";
}
两个选项立刻浮现在脑海中。首先,尝试str_pad()
。它确实如你所描述的那样。
其次,您可以使用另一个建议的sprintf()
。
如果你不知道的各种数字多久练得(例如,它们是动态确定的,不知道他们会是什么,直到后来的方式),你可以使用下面的代码:
<?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);
?>
是的,这是完全正确的。在http://php.net/manual/en/function.str-pad.php有人指出,“对于数字格式(比如写数字前导零等),sprintf比str_pad快得多。” – phimuemue 2010-07-09 07:18:19