桁区切りのカンマを削除したり追加したりする方法
金額等の数字の表記は、各所でばらばらで面倒ですねぇ。
見やすいように、ちゃんと3桁区切りでカンマを入れていたり。
面倒だからか、そのまま出力していたり。
これらを統一的に処理するにはどうすればいいのか。
意外に関数の存在を見落とすので、メモしておきます。
ばらばらじゃ処理できないので、各所から情報を集めてきたら統一したフォーマットに整える必要があります。
そして出力する際も、統一したフォーマットで出力する必要があります。
桁区切りのカンマを削除する方法
$number = str_replace(',','',$english_format_number);
検索文字列に一致したすべての文字列を置換するstr_replaceを使います。
検索対象をカンマを指定、置換対象に何も指定しない。
それだけ。
あんまりシンプルなもので、後述するnumber_formatの逆〜みたいな関数はないようです。
▽PHP: str_replace - Manual
http://jp.php.net/manual/ja/function.str-replace.php
桁区切りのカンマを追加する方法
$english_format_number = number_format($number);
number_formatという関数があります。
「数字を千位毎にグループ化してフォーマットする」関数だそうです。
3桁毎の区切り文字を指定したり、小数点以下の桁数を揃えたりすることもできるようです。
▽PHP: number_format - Manual
http://jp.php.net/manual/ja/function.number-format.php
一応、money_formatという関数もあるようです。
が、setlocaleで円を指定して……とかちょっと面倒な感じです。
▽PHP: money_format - Manual
http://jp.php.net/manual/ja/function.money-format.php
以上。
必要ないのに、preg_replaceで3桁ごとに取り出して……とかお馬鹿なことはやりたくないものです(というか、やってしまっていた私……)