Подтвердить что ты не робот

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

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

  • 1 → Счет 0001
  • 10 → Счет 0010
  • 150 → Счет 0150

и др.

4b9b3361

Ответ 1

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

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

Ответ 2

Используйте 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

Ответ 3

Использование printf

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

Ответ 4

Попробуйте следующее:

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

Ответ 5

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

Ответ 6

while ( strlen($invoice_number) < 4 ) $invoice_num = '0' . $invoice_num;