PHPで桁数指定で0パディングする方法を解説!

指定した桁数に書式をそろえるために0を埋めることを0パディングと言います。この0パディングは日付や小数点数を表示したりする際に、用いられることがよくあります。この記事ではPHPでは桁数指定で0パディングする方法を解説しています。

コンテンツ [表示]

  1. 10パディングとは
  2. 2PHPで桁数指定で0パディングする方法
  3. 2.1sprintf
  4. 2.2str_pad
  5. 3まとめ

0パディングとは

0パティングとは0埋めとも言われたりして、書式で指定した桁数に満たない場合に桁数を満たすように0を追加することを指します。

例えば、下記のような数字の場合で考えてみます。

  • 12897
  • 25
  • 539
  • 6654

数字のフォーマットがバラバラですね。こういった数字に桁数指定を5桁にして、0パティングをさせます。
右側に0を追加すると数字の大きさ自体が変わってしまうため、この場合は左側に0を追加していきます。

  • 12897
  • 00025
  • 00539
  • 06654

0パディングを行うことで、フォーマットをそろえることができスッキリして見えますね。

Photo bydoki7

PHPで桁数指定で0パディングする方法

それでは、PHPで桁数指定で0パティングする方法をサンプルコード付きで解説していきます。

sprintf

sprintf

sprintf(format, value)

sprintf関数は第一引数にフォーマットを指定し、第二引数にフォーマットにはめ込む値を指定することで、フォーマットされた文字列が返ってきます。

第一引数のフォーマットに「%02d」とすると、第二引数に指定した値が2桁に満たなかった場合には0埋めを行うというように表現できます。

実際の使い方をサンプルコードで見てみましょう。

配列$numbersに0パディングしたい数字で初期化しています。

その配列に対してforeach文を使い、配列の値に対して順番に0パディングを行います。

sprintf関数の第一引数には「%05d」と指定し、与えられた第二引数の値が5桁に満たない時には0パディングを行っています。また、sprintf関数は0パディングを行った文字列を返しているだけなので、表示したい場合にはechoなどで出力する必要があります。

出力された文字列は0パディングが行われていて、キレイに5桁にそろえることができていますね。

str_pad

str_pad

str_pad(value, length, pad_string, pad_type)

str_pad関数は文字列を固定長の他の文字列で埋めることができます。

第一引数には対象の値
第二引数には桁数
第三引数にはパディングを行う文字列
第四引数には左側を埋めるか、右側を埋めるかなどの値を指定します。初期値はSTR_PAD_LEFTという左側を埋めるという値です。

実際の使い方をサンプルコードで見てみましょう。

先ほどと同じようにforeach文で値を順に取り出し、str_padの第一引数には対象の値を指定し、第二引数5で5桁という桁数指定を行い、5桁に満たない場合は第三引数で指定した0で埋めます。第四引数にはSTR_PAD_LEFT0を左側に埋めていきます。

str_padsprintf同様出力したい場合は、echoなどを使う必要があります。

str_padでも0パディングが行われて、キレイに5桁にそろえることができています。

まとめ

0パディングに限らず、表示したい書式を指定する場面というのは意外に多いです。今回紹介したsprintf関数やstr_pad関数はぜひ使いこなせるようになっておきましょう。

今だけ
無料

【7月31日まで】全カリキュラム無料で提供中!

Qumeru

Qumeru[クメル]ではプログラミング学習が出来るカリキュラムを7月31日までの期間限定で無料で提供しています。

無料登録することで、すぐにプログラミング学習を始められます。ぜひカリキュラムをお試し下さい!

関連記事

【期間限定】全カリキュラム無料で提供中!

Qumeru[クメル]ではプログラミング学習の全カリキュラムを7月31日まで期間限定で無料で提供しています。

無料登録することで、すぐにプログラミング学習を始められます。ぜひお試し下さい!

目次

みぎさん
ライター

みぎさん

大阪府の現役システムエンジニアです。WEB制作やWEB開発、ライティングなど幅広く活動しております。 【言語/FW】HTML,CSS,Sass,JavaScript,jQuery,Vue.js,PHP,WordPress,Laravel,Java