Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
sprintf() / number_format()対応: PHP 4(2000)
書式を指定して文字列や数値をフォーマットします。数値の桁区切りや小数点以下の桁数指定には『number_format()』が便利です。
構文
// 書式指定文字列に従ってフォーマットします。 sprintf($format, ...$values); // 引数を配列で渡すバージョンです。 vsprintf($format, $values); // 数値を桁区切りでフォーマットします。 number_format($number, $decimals, $decimal_separator, $thousands_separator);
関数一覧
| 関数 | 概要 |
|---|---|
| sprintf($format, ...$values) | 書式指定文字列に従ってフォーマットした文字列を返します。 |
| vsprintf($format, $values) | 引数を配列で渡す『sprintf()』です。動的に引数を渡す場合に使用します。 |
| number_format($number, $decimals, $dec, $sep) | 数値を桁区切りでフォーマットした文字列を返します。$decimals は小数点以下の桁数、$dec は小数点の記号、$sep は桁区切りの記号です。 |
戻り値
フォーマットされた文字列を返します。
サンプルコード
<?php
// %s は文字列、%d は整数に置き換えられます。
echo sprintf("名前: %s、年齢: %d歳", "山田太郎", 30); // 『名前: 山田太郎、年齢: 30歳』と出力されます。
// %05d でゼロ埋め5桁にフォーマットします。
echo sprintf("注文番号: %05d", 42); // 『注文番号: 00042』と出力されます。
// %0.2f で小数点以下2桁にフォーマットします。
echo sprintf("金額: %0.2f円", 1234.5); // 『金額: 1234.50円』と出力されます。
// %% でパーセント記号を出力します。
echo sprintf("達成率: %d%%", 85); // 『達成率: 85%』と出力されます。
// 引数の順序を指定できます。
echo sprintf("%2\$sの%1\$sです。", "東京支店", "山田"); // 『山田の東京支店です。』と出力されます。
// vsprintf() は引数を配列で渡します。
$params = ["商品A", 3, 1500];
echo vsprintf("%sを%d個、合計%d円で購入しました。", $params); // 『商品Aを3個、合計1500円で購入しました。』と出力されます。
// number_format() で桁区切りを付けます。
echo number_format(1234567); // 『1,234,567』と出力されます。
// 小数点以下2桁で表示します。
echo number_format(1234567.891, 2); // 『1,234,567.89』と出力されます。
// 区切り記号をカスタマイズする例です。
echo number_format(1234567.89, 2, ".", ","); // 『1,234,567.89』と出力されます。
// 日本円の表示に活用する例です。
$price = 198000;
echo "¥" . number_format($price); // 『¥198,000』と出力されます。
概要
『sprintf()』は C 言語由来の書式指定関数で、文字列や数値を指定したフォーマットに整形できます。主な変換指定子は %s が文字列、%d が整数、%f が浮動小数点数、%x が16進数です。ゼロ埋めや桁数指定も可能で、注文番号やファイル名の連番生成に活用されます。
『number_format()』は数値に桁区切りを付ける専用の関数です。金額表示やデータの見やすい整形に便利で、小数点以下の桁数や区切り記号をカスタマイズできます。『number_format()』の戻り値は文字列であるため、計算に使う場合は数値に変換し直す必要があります。
画面に直接出力したい場合は printf() を使えば echo sprintf() と同じ結果になります。文字列の結合には『implode()』、文字列の埋め込みには『str_pad()』も便利です。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。