Как форматировать числа с 00 префиксами в php?

Я пытаюсь создать номера счетов. Они всегда должны быть 4 числа длинными, с ведущими нулями, например:

  • 1 -> Счет 0001
  • 10 -> Счет 0010
  • 150 -> Счет 0150

и т.п.

Используйте str_pad () .

$invID = str_pad($invID, 4, '0', STR_PAD_LEFT);

Использовать sprintf : http://php.net/function.sprintf

 $number = 51; $number = sprintf('%04d',$number); print $number; // outputs 0051 $number = 8051; $number = sprintf('%04d',$number); print $number; // outputs 8051 

Использовать (ы) printf

 printf('%04d',$number); 

Попробуй это:

 $x = 1; sprintf("%03d",$x); echo $x; 

printf() отлично работает, если вы всегда что-то печатаете, но sprintf() дает вам большую гибкость. Если вы будете использовать эту функцию, $threshold будет равен 4 .

 /** * Add leading zeros to a number, if necessary * * @var int $value The number to add leading zeros * @var int $threshold Threshold for adding leading zeros (number of digits * that will prevent the adding of additional zeros) * @return string */ function add_leading_zero($value, $threshold = 2) { return sprintf('%0' . $threshold . 's', $value); } add_leading_zero(1); // 01 add_leading_zero(5); // 05 add_leading_zero(100); // 100 add_leading_zero(1); // 001 add_leading_zero(5, 3); // 005 add_leading_zero(100, 3); // 100 add_leading_zero(1, 7); // 0000001 
 while ( strlen($invoice_number) < 4 ) $invoice_num = '0' . $invoice_num;