2

PHPを使用して数値に1000の区切り記号を追加し、同時に先行ゼロを保持しようとしています(これは、設定されたターゲットに向かって数値が大きくなるのを見ることができるように、先頭の0が残るアプリの設計の一部です-a 6桁の番号)。

私の最初の試みは、計算された現在の数値の長さが 6 桁未満の場合、str_pad を使用して先行ゼロを追加することでした。次にカンマを追加するために、number_format を使用しました。明らかな問題は、number_format が先頭の 0 を削除することです。

$num = 550;
$num_padded = str_pad($num, 6, '0', STR_PAD_LEFT);
echo number_format($num_padded);  

そのため、000,550 ではなく 550 が返されます。

私が探しているフォーマットを達成するための信頼できる方法を知っている人はいますか?

ありがとう!

4

4 に答える 4

0

sprintfを使ってみましたか? 例えば

echo sprintf('%06d', 550);
于 2013-10-14T13:57:30.417 に答える
0

PHP 文字列操作によるワンライナー。任意の桁数で機能します:

function pad($number, $min_digits){
    return strrev(implode(",",str_split(str_pad(strrev($number), $min_digits, "0", STR_PAD_RIGHT),3)));
}

/* Output for 9 digits
0,000,001
0,000,012
0,000,123
0,001,234
0,012,345
0,123,456
1,234,567
12,345,678
123,456,789
/**/
于 2015-02-11T00:16:57.137 に答える