如何在php中格式化带有00前缀的数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在php中格式化带有00前缀的数字?相关的知识,希望对你有一定的参考价值。

我正在尝试生成发票号码。它们应始终为4个数字,前导零,例如:

  • 1 - >发票0001
  • 10 - >发票0010
  • 150 - >发票0150

等等

答案

使用str_pad()

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

另一答案

使用sprintfhttp://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;
另一答案

使用str_pad函数

 //pad to left side of the input
$my_val=str_pad($num, 3, '0', STR_PAD_LEFT)

//pad to right side of the input
$my_val=str_pad($num, 3, '0', STR_PAD_RIGHT)

//pad to both side of the input
$my_val=str_pad($num, 3, '0', STR_PAD_BOTH)

其中$ num是你的号码

以上是关于如何在php中格式化带有00前缀的数字?的主要内容,如果未能解决你的问题,请参考以下文章

如何格式化数字? php函数[重复]

如何在 PHP 中将数字格式化为美元金额

如何在 php 中格式化多维数组上的数字?

如何在带有 £ 符号的数字列上为 SQL 查询添加前缀 [重复]

PHP数字格式(货币)[关闭]

根据在 Spinner 中选择的数字,相同的片段应该出现在另一个之下。如何?