如何在PHP中向数字添加前导零和逗号

har*_*ham 3 php format integer number-formatting

我有一个变量$counter,返回以下整数:

4
Run Code Online (Sandbox Code Playgroud)

我想使用数字格式或类似格式使我的整数以这种格式显示:

000,000,004
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Sal*_*n A 5

您可以像这样一起使用sprintf()str_split()

$number = 4;
$formattedNumber = sprintf("%09d", $number);
$formattedNumber = str_split($formattedNumber, 3);
$formattedNumber = implode(",", $formattedNumber);
echo $formattedNumber;
Run Code Online (Sandbox Code Playgroud)

编辑:

这是上述代码的杀手级变种,它使用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
Run Code Online (Sandbox Code Playgroud)