PHPで2種類の0埋めテクニック | 整形された表示を実現

数値の桁数を揃えて表示するために、PHPによって0埋めを使用して表示状の整形を実現する方法です。

0で埋めるとは以下の状態を実現する方法です。

1
10
100

// ↓これらを0で埋める↓

001
010
100

例えば、以下の問題を解決するために必要になります。

  • 日付や時間
  • ファイル名やIDなどの識別子
  • アプリケーションの表示の統一性

システム状では数値で比較できれば充分ですが、システムとは人が使いやすい状態がベストな状態です。

0で桁数を揃えることで視認性が高くなり、多くの数値の比較がしやすくなります。

0埋めするためのPHPコード

実際に機能するPHPコードは以下です。

$number = 7;

str_pad($number, 2, "0", STR_PAD_LEFT); // 結果: "07"
str_pad($number, 3, "0", STR_PAD_LEFT); // 結果: "007"

sprintf("%02d", $number); // 結果: "07"
sprintf("%03d", $number); // 結果: "007"

上記のコードではどちらも0埋めを実現するための方法になります。

str_padの使用方法

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

str_pad — 文字列を固定長の他の文字列で埋める

https://www.php.net/manual/ja/function.str-pad.php

str_padは、文字列を指定した長さになるように指定の文字で埋めるためのPHPの組み込み関数です。

主にテキストや数字の整形を行うために使用されます。以下は、str_pad関数の基本的な使い方とパラメータの説明です。

str_pad(
    string $string,
    int $length,
    string $pad_string = " ",
    int $pad_type = STR_PAD_RIGHT
): string
  1. $string: 基本となる文字列
  2. $length: 希望する結果の長さ。$stringの長さがこれに満たない場合、埋める処理が行われます。
  3. $pad_string: 埋める際に使用する文字列。通常は空白やゼロなどが使われます。
  4. $pad_type: 埋める位置の指定。指定できる値は以下が存在します。
    • STR_PAD_RIGHT(右側に埋める)
    • STR_PAD_LEFT(左側に埋める)
    • STR_PAD_BOTH(両側に均等に埋める)

sprintfの使用方法

(PHP 4, PHP 5, PHP 7, PHP 8)

sprintf — フォーマットされた文字列を返す

https://www.php.net/manual/ja/function.sprintf.php

sprintfは、フォーマット指定を使用して文字列を整形するためのPHPの組み込み関数です。指定されたフォーマットに従って、変数を埋め込むことができます。

主にテキストや数字の整形、日付や時刻のフォーマットなどに使用されます。以下は、sprintf関数の基本的な使い方とフォーマット指定子の説明です。

sprintf(string $format, mixed ...$values): string
  1. $format: フォーマット文字列。埋め込みたい変数や指示子を含む形式です。
  2. $values: フォーマット文字列内の指示子に対応する変数や値。複数の引数を取ることができます。

指定できる指示子の代表的な例としては以下が存在します。

  • %s: 文字列
  • %d or %i: 符号付き整数
$name = "花子";
$age = 25;

sprintf("名前: %s、 年齢: %d", $name, $age); // "名前: 花子、 年齢: 25"

他にも識別子が存在するので、詳しくは公式ドキュメントを参照してください。

終わりに

以上、PHPコードで0埋めをする2種類の方法を紹介しました。

str_pad は0埋めする事だけに特化した関数で引数に指定するだけで実現することができます。

sprintf は0埋め以外にも文字列の表示内容などを整形する事ができるので汎用的な処理の記述が可能になります。

どちらでも実現できるので、ご自分のプロジェクトの特性にあった物を判断し、使用する事をお勧めします。

お疲れ様でした。