2

我试图做一个看起来像001 002 003...123,124循环的数字(十进制)增量,但找不到简单的解决方案。我现在想的是检查数字是否足够长,如果不是前缀一些“ 0"。但似乎不太好。有更好的主意吗?

谢谢。

4

4 回答 4

4
$x = 6    
$y = sprintf("%03d",$x);

http://php.net/manual/en/function.sprintf.php

于 2010-07-09T07:16:19.090 回答
1
for($i=1;$i<1000;$i++){
  $number = sprintf("%03d",$i);
  echo "$number <br />";
}
于 2010-07-09T07:16:37.603 回答
1

两个选项立即浮现在脑海。首先,尝试str_pad()。它完全符合您的描述。

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

于 2010-07-09T07:16:48.300 回答
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);

?>
于 2010-07-09T07:28:38.223 回答