我試圖做一個數字(十進制)增量,看起來像一個循環中的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