Проблема представления чисел в php - PullRequest
0 голосов
/ 12 мая 2010

Это простая вещь, но я не получаю ответ за это.

Я сгенерировал идентификатор автоматической генерации, связанный с годом 100001, например, 100002, в этом 10 - год 0001 - номера автоматической генерации. Когда я делю год и число, получая добавление, одно значение равно 2 для 0001. но мне нужно как 0002.

Adding value is 0001+1, 0002+1, 0010+1, 0099+1

Now the answer are 2, 3, 11, 100 like that

But i need like that 0002,0003,0011,0100

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 12 мая 2010
$var = sprintf ('%04d', $var);

См. Руководство по sprintf .

1 голос
/ 12 мая 2010

0001 это не число, это строка.Когда вы добавляете к нему 1, PHP преобразует его в число (1), а затем добавляет к нему 1, так что в итоге вы получаете 2. Что вы хотите сделать, это добавить число к 0, преобразовав его обратно в строку.Вы можете использовать sprintf, как предлагали другие, или str_pad.

str_pad(1, 4, '0', STR_PAD_LEFT);
0 голосов
/ 12 мая 2010

Вы можете использовать старый добрый sprintf для форматирования чисел.

$a = 1;
$f = sprintf("%06s", $a);
echo $f;

Должно быть напечатано "000001".

Документация: http://php.net/manual/en/function.sprintf.php

...