【PHP】金額をカンマで3桁区切りにフォーマット

PHPを使ってシステム開発を行っていると、金額を表示する機会もかなり多いです。
ですが、10000のような数字がそのまま出てしまうと、桁数が多い場合にとても見づらくなります。
例えば、ショッピングサイトや請求画面では、ユーザーにとって「10,000円」といった見やすいフォーマットが欠かせません。
そこで便利なのが、PHPのnumber_format()関数です。
この記事では、PHP初心者でもすぐに使える「金額を3桁ごとにカンマ区切りにする方法」を丁寧に解説していきます。
PHPで金額をフォーマットする方法は?
金額を「3桁区切り(カンマ付き)」で表示する最もシンプルな方法は、number_format()関数を使うことです。
基本的な使い方は、このようになります。
<?php
$price = 10000;
echo number_format($price); // 出力:10,000
?>
これだけで、数値を「10,000」のようにフォーマットしてくれます。
number_format()関数はPHPの組み込み関数なので、特別なライブラリを追加する必要もなく、とても便利に使えます。
詳細は公式マニュアル(PHP: number_format – Manual)も確認すると安心です。
number_formatの詳しい使い方
こちらのセクションでは、number_format()関数の詳しい使い方を説明していきます。
まず、使用できる引数はこちらです。
第1引数:フォーマットしたい数値
第2引数:小数点以下の桁数
第3引数:小数点以下を表示する場合の文字
第4引数:3桁(000)で区切る場合の、区切り文字
number_format()では、小数点以下の桁数や区切り文字も指定できます。
それでは、実際にコードを書きながら説明します。
小数点以下を表示する
小数点以下を表示する場合、第2引数を指定します。
このように、「小数点以下の桁数」を指定すると、四捨五入して表示してくれます。
<?php
echo number_format(1234.569, 2); // 出力:1,234.57
?>
区切り文字をカスタマイズ
また、第3引数と第4引数を指定すると、このようなコードになります。
<?php
echo number_format(1234.567, 2, '.', ' '); // 出力:1 234.57
?>
- 第3引数:小数点記号(デフォルトは
.) - 第4引数:桁区切り記号(デフォルトは
,)
これを使えば、日本円だけでなくドルやユーロなどの表記も柔軟に対応できます。
金額表示でよくある実装例
実際によくありそうな金額フォーマットの場面を想定し、いくつかの実装例も紹介します。
商品価格をフォーマットする
<?php
$price = 2980;
echo "¥" . number_format($price); // 出力:¥2,980
?>
フォーム送信後に金額を整形
入力フォームから数値を受け取り、そのまま表示すると桁区切りされません。
その場合もnumber_format()を使えば、簡単に金額の整形が可能です。
消費税を加算して表示
<?php
$price = 5000;
$taxRate = 0.1; // 10%
$total = $price * (1 + $taxRate);
echo "合計金額:" . number_format($total) . "円"; // 出力:合計金額:5,500円
?>
number_formatを使うときの注意点
number_format()は便利な関数ですが、初心者がハマりやすい注意点もあります。
- 数値以外の文字列を渡すと想定外の結果になる
例:number_format("abc")→ 「0」になる - 通貨記号は自動で付かない
→ 「円」や「¥」「$」などは自分で付ける必要がある
<?php
echo "¥" . number_format(10000); // 出力:¥10,000
?>
ちなみに、より高度な通貨フォーマットには、PHPの国際化関数 (Intl) – NumberFormatterクラスもあります。
興味のある方は、こちらも合わせてチェックしてみましょう。
まとめ
今回は、PHPユーザー向けに、金額を3桁区切りにフォーマットする方法を紹介しました。
- PHPで金額をカンマ区切りにするなら
number_format()関数が一番簡単 - 小数点や区切り文字をカスタマイズすることも可能
- 金額表示はユーザーの見やすさにつながるため、必ず整形して出力するのがおすすめ
number_format()関数を使用することで、ショッピングサイトや管理画面がかなり見やすくなります。
さらに高度なフォーマットが必要になったら、PHPのIntl拡張を学んでみるのも良いでしょう。
























