簡體   English   中英

如何在PHP中的數字中添加前導零和逗號

[英]How to add leading zeros and commas to a number in PHP

我有一個變量$counter ,它返回以下整數:

4

我想使用數字格式或類似的方式使我的整數以這種格式出現:

000,000,004

我怎么能這樣做?

您可以像這樣一起使用sprintf()str_split()

$number = 4;
$formattedNumber = sprintf("%09d", $number);
$formattedNumber = str_split($formattedNumber, 3);
$formattedNumber = implode(",", $formattedNumber);
echo $formattedNumber;

編輯:

以下是使用str_pad()的上述代碼的殺手級變體:

function formatNumber($number, $desiredLength, $separatorLength) {
    $formattedNumber = str_pad($number, $desiredLength, "0", STR_PAD_LEFT);
    while(strlen($formattedNumber) % $separatorLength){
        $formattedNumber = " " . $formattedNumber;
    }
    $formattedNumber = str_split($formattedNumber, $separatorLength);
    $formattedNumber = implode(",", $formattedNumber);
    return trim($formattedNumber);
}
echo formatNumber(         4, 9, 3); // 000,000,004   -- fixed width
echo formatNumber(4000000000, 9, 3); // 4,000,000,000 -- fixed width; overflow handled automatically
echo formatNumber(         4, 0, 3); // 4             -- no width specified
echo formatNumber(      4000, 0, 3); // 4,000         -- no width specified; comma added automatically

你可以做的一種方法是sprintf

sprintf('%03d', $counter);

另一個是使用str_pad

str_pad($counter, 3, "0", STR_PAD_LEFT);

你可以使用str_pad函數:

str_pad((4,2,"0",STR_PAD_LEFT);
$string = "4";
echo str_pad($string, 9, "0", STR_PAD_LEFT); // prints "000000004" (9-digit number)

/* 
   9 = How long the returned value should be. Must be bigger than length of $string
   0 = String to add
   STR_PAD_LEFT = On which side to add zeros? Left, in the case
 */

使用number_format

$number = 1;
echo number_format($number / 1000, 3, ",", "."); // 2 decimals, "," and "." as seperators
// gives 0,001

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM