$counter
次の整数を返す変数があります。
4
数値形式などを使用して、整数をこの形式で表示したい:
000,000,004
どうすればこれを行うことができますか?
$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
あなたができる1つの方法はsprintfです。
sprintf('%03d', $counter);
もう1つはstr_padを使用しています
str_pad($counter, 3, "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
str_pad関数を使用できます。
str_pad((4,2,"0",STR_PAD_LEFT);