カテゴリ: PHP 更新日: 2025/05/29

PHP の文字列のフォーマット(sprintf, printf)

PHP の文字列のフォーマット(sprintf, printf)
PHP の文字列のフォーマット(sprintf, printf)

新人と先輩の会話形式で理解しよう

新人

「PHPで数字や文字列を見やすく整える方法ってありますか?」

先輩

「PHPでは、sprintfprintf を使うことで、文字列を指定したフォーマットに整えることができます。」

新人

「フォーマットに整えるってどういうことですか?」

先輩

「たとえば、数字を3桁ごとにカンマを入れたり、小数点以下の桁数を揃えたりすることができます。具体的な使い方を見ていきましょう!」

-

1. PHPの文字列操作とは?

1. PHPの文字列操作とは?
1. PHPの文字列操作とは?

PHPは、Web開発でよく使われるプログラミング言語で、文字列を操作するためのさまざまな関数が用意されています。

特に、データをフォーマットする方法は重要で、画面に表示するときやログを出力するときに役立ちます。

たとえば、数値の表示形式を揃えたり、通貨の記号を付けたり、特定の桁数まで表示する場合に使われます。

2. 文字列のフォーマットとは?(基本概念)

2. 文字列のフォーマットとは?(基本概念)
2. 文字列のフォーマットとは?(基本概念)

文字列のフォーマットとは、決まったルールに従って文字や数字を整えることです。

例えば、以下のようなケースで使われます。

  • 小数点以下の桁数を固定する(例: 3.143.140
  • 数値にカンマを入れて見やすくする(例: 10000001,000,000
  • 日付や時刻の表示形式を統一する(例: 202403012024-03-01

PHPでは、このようなフォーマット処理を簡単に行うために sprintfprintf を利用できます。

3. sprintf の基本的な使い方(簡単な例)

3. sprintf の基本的な使い方(簡単な例)
3. sprintf の基本的な使い方(簡単な例)

sprintf 関数は、指定したフォーマットに従って文字列を作成し、その結果を返す関数です。

例えば、数値を小数点以下2桁に整える場合、以下のように書きます。


<?php
$price = 1234.5;
$formatted_price = sprintf("%.2f", $price);
echo $formatted_price;
?>

このコードを実行すると、以下のように出力されます。


1234.50

このように、sprintf を使うことで、小数点以下の桁数を固定して表示できます。

4. printf の基本的な使い方(画面に直接出力する方法)

4. printf の基本的な使い方(画面に直接出力する方法)
4. printf の基本的な使い方(画面に直接出力する方法)

printf 関数は sprintf と似ていますが、違いは「結果を文字列として返す」のではなく、「画面に直接出力する」ことです。

例えば、sprintf を使う場合は次のように書きます。


<?php
$price = 1234.5;
$formatted_price = sprintf("価格: %.2f 円", $price);
echo $formatted_price;
?>

このコードを実行すると、以下のように出力されます。


価格: 1234.50 円

これに対して printf を使うと、次のように書きます。


<?php
$price = 1234.5;
printf("価格: %.2f 円", $price);
?>

このコードを実行すると、echo を使わなくても直接結果が表示されます。

つまり、sprintf は「フォーマットした文字列を変数に保存したいとき」に使い、printf は「フォーマットした文字列を直接出力したいとき」に使います。

-

5. sprintf と printf の違い(使い分けのポイント)

5. sprintf と printf の違い(使い分けのポイント)
5. sprintf と printf の違い(使い分けのポイント)

ここまでの説明を整理すると、sprintfprintf の違いは以下のようになります。

関数名 特徴 使用場面
sprintf フォーマットした文字列を変数として保持 後で文字列を加工したり、別の処理に使う場合
printf フォーマットした文字列を直接画面に出力 画面にすぐに表示したい場合

例えば、ログを記録するためにフォーマットした文字列を変数として扱いたい場合は sprintf を使い、画面にすぐに表示したい場合は printf を使うと良いでしょう。

6. 文字列フォーマットで使える書式指定子(%d, %s, %f など)

6. 文字列フォーマットで使える書式指定子(%d, %s, %f など)
6. 文字列フォーマットで使える書式指定子(%d, %s, %f など)

sprintfprintf を使うときは、書式指定子 を使って値をフォーマットします。

主な書式指定子は以下の通りです。

書式指定子 意味 出力結果
%d 整数(10進数) printf("%d", 123); 123
%s 文字列 printf("%s", "Hello"); Hello
%f 浮動小数点(デフォルトは小数点6桁) printf("%f", 3.14); 3.140000
%.2f 小数点以下2桁まで表示 printf("%.2f", 3.1415); 3.14
%04d 4桁の整数(足りない部分は0埋め) printf("%04d", 5); 0005

たとえば、小数点以下2桁に揃えた数値を画面に出力するには次のように書きます。


<?php
$price = 1234.567;
printf("価格: %.2f 円", $price);
?>

このコードを実行すると、以下のように表示されます。


価格: 1234.57 円

このように、書式指定子を使うことで、数値や文字列を見やすく整形することができます。

7. sprintf を使った高度なフォーマット(ゼロ埋め・桁揃え)

7. sprintf を使った高度なフォーマット(ゼロ埋め・桁揃え)
7. sprintf を使った高度なフォーマット(ゼロ埋め・桁揃え)

フォーマットを適切に使うことで、ゼロ埋めや桁を揃えることができます。

例えば、数字の前にゼロを付けて4桁で表示したい場合は、%04d を使います。


<?php
$number = 5;
$formatted_number = sprintf("%04d", $number);
echo $formatted_number;
?>

このコードを実行すると、以下のように出力されます。


0005

このように、数値の前にゼロを追加して、指定した桁数になるように整形できます。

また、文字列の長さを固定し、右揃えや左揃えにすることも可能です。

右揃えで10文字にする場合は以下のように記述します。


<?php
$text = "PHP";
$formatted_text = sprintf("%10s", $text);
echo $formatted_text;
?>

このコードを実行すると、以下のように出力されます。(先頭に空白が入る)


       PHP

逆に、左揃えにするには - を指定します。


<?php
$text = "PHP";
$formatted_text = sprintf("%-10s", $text);
echo $formatted_text;
?>

この場合は、以下のように左揃えになります。


PHP       

8. number_format と sprintf の違い(数値フォーマットの注意点)

8. number_format と sprintf の違い(数値フォーマットの注意点)
8. number_format と sprintf の違い(数値フォーマットの注意点)

PHPには number_format という関数があり、数値をフォーマットする際に便利です。

例えば、3桁ごとにカンマを追加して数値を見やすくする場合、以下のように number_format を使います。


<?php
$price = 1234567.89;
echo number_format($price, 2);
?>

このコードを実行すると、以下のように出力されます。


1,234,567.89

一方、sprintf を使って小数点以下の桁数を指定すると、カンマは追加されません。


<?php
$price = 1234567.89;
echo sprintf("%.2f", $price);
?>

この場合の出力は以下のようになります。


1234567.89

このように、数値を見やすく整える場合は number_format を、より細かくフォーマットしたい場合は sprintf を使うのが良いでしょう。

9. 実践!文字列フォーマットを活用したサンプルコード(応用編)

9. 実践!文字列フォーマットを活用したサンプルコード(応用編)
9. 実践!文字列フォーマットを活用したサンプルコード(応用編)

最後に、sprintf を活用した実践的な例を紹介します。

例えば、商品リストを整形して出力する場合、以下のように使えます。


<?php
$products = [
    ["name" => "りんご", "price" => 150],
    ["name" => "バナナ", "price" => 100],
    ["name" => "ぶどう", "price" => 200]
];

foreach ($products as $product) {
    printf("%-10s : %5d 円\n", $product["name"], $product["price"]);
}
?>

このコードを実行すると、以下のように出力されます。


りんご       :   150 円
バナナ       :   100 円
ぶどう       :   200 円

このように、フォーマットを指定することで、表のようにきれいに並べて表示することができます。

また、日時をフォーマットして表示することもできます。


<?php
$year = 2024;
$month = 3;
$day = 5;
printf("今日は %04d/%02d/%02d です。\n", $year, $month, $day);
?>

このコードを実行すると、以下のように出力されます。


今日は 2024/03/05 です。

このように、sprintfprintf を使うことで、数値や文字列を見やすくフォーマットできます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
Pythonのエラーメッセージの読み方!よくあるエラーと解決方法
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
Pythonの条件式でNoneを判定する方法!is None vs == None の違い
Pythonのpass文とは?一時的なコードブロックをスキップする方法
人気記事
No.1
Java&Spring記事人気No1
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.2
Java&Spring記事人気No2
PHPとは?初心者向けにわかりやすく解説
No.3
Java&Spring記事人気No3
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
No.4
Java&Spring記事人気No4
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
-