I have a variable $counter that returns the following integer:
4
I want to use number format or similar to make my integer appear in this format:
000,000,004
How can I this be done?
You can use sprintf() and str_split() together like this:
$number = 4;
$formattedNumber = sprintf("%09d", $number);
$formattedNumber = str_split($formattedNumber, 3);
$formattedNumber = implode(",", $formattedNumber);
echo $formattedNumber;
Here is a killer variant of the above code that uses 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
One method you can do is sprintf.
sprintf('%03d', $counter);
another is using str_pad
str_pad($counter, 3, "0", STR_PAD_LEFT);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With