2013-03-05 7 views
3

Например, у меня есть этот формат: $s_number = "12"; И для этого входа, мне нужно 0012 как выход:PHP формат номер 4 цифры

Другой пример:

Входной $s_number = "3"; Выход: 0003

Каждый раз, когда мне нужно 4 цифры, я бы хотел, чтобы это произошло.

+1

'printf' уже может сделать это:' Е ("% 04d", $ число) '. Существует также 'sprintf', если вы хотите получить результат в строке. – Jon

+0

Что вы пробовали? Вы пытались использовать что-то вроде sprintf (http://www.php.net/manual/en/function.sprintf.php) или просто добавить текст в зависимости от длины строки? – Mike

ответ

7

Использование str_pad() для этого:

echo str_pad($number, 4, '0', STR_PAD_LEFT); 
+1

Спасибо, также у меня есть прецеденты с этим $ p = substr (sprintf ('% 04d', $ digit), 0,4); – Martelo2302

+0

Обратите внимание, что str_pad является ** намного ** быстрее;) – hek2mgl

+1

Спасибо за str_pad –

11

Это не будет числом (но строка), но вы можете сделать это с помощью str_pad. В ваших примерах:

$s_number = str_pad("12", 4, "0", STR_PAD_LEFT); 
$s_number = str_pad("3", 4, "0", STR_PAD_LEFT); 
1

Вы можете добиться этого легко с помощью printf

<?php 
$s_number = '12'; 
printf("%04d", $s_number); 
?> 

Надежда ПГПС это помогает

+0

ах спасибо. Полностью забыл, что printf также распечатывает (глупо из меня, так как это также во имя функции) – Mic1780

Смежные вопросы