увеличение числа с индивидуальным стилем - PullRequest
2 голосов
/ 09 июля 2010

Я попытался сделать приращение числа (десятичного), которое выглядит как 001 002 003...123,124 в цикле, и не смог найти простое решение. Что я подумал сейчас, чтобы проверить, достаточно ли длинное число, если не префикс, то это какой-то "0". Но это нехорошо. Есть лучшие идеи?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 09 июля 2010
$x = 6    
$y = sprintf("%03d",$x);

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

1 голос
/ 09 июля 2010

Если вы не уверены, как долго различные числа окажутся (например, они определяются динамически, и нет никакого способа узнать, какими они будут до тех пор, до тех пор), вы можете использовать следующий код:

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

?>
1 голос
/ 09 июля 2010

На ум сразу приходят два варианта. Сначала попробуйте str_pad(). Это именно то, что вы, кажется, описываете.

Во-вторых, вы можете использовать sprintf(), как предложил другой.

1 голос
/ 09 июля 2010
for($i=1;$i<1000;$i++){
  $number = sprintf("%03d",$i);
  echo "$number <br />";
}
...