2010-07-09 53 views
2

我试图做一个数字(十进制)增量,看起来像一个循环中的001 002 003...123,124,并找不到一个简单的解决方案。我现在想的是检查数字是足够长的时间,如果不是前缀它一些“0”。但它似乎不好。任何更好的想法?自定义风格的数字增量

谢谢。

回答

1
for($i=1;$i<1000;$i++){ 
    $number = sprintf("%03d",$i); 
    echo "$number <br />"; 
} 
1

两个选项立刻浮现在脑海中。首先,尝试str_pad()。它确实如你所描述的那样。

其次,您可以使用另一个建议的sprintf()

+0

是的,这是完全正确的。在http://php.net/manual/en/function.str-pad.php有人指出,“对于数字格式(比如写数字前导零等),sprintf比str_pad快得多。” – phimuemue 2010-07-09 07:18:19

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); 

?>