PHPの0埋めする方法

PHPで0埋めする方法です。

0埋めとは、そのままの意味で、足りない桁数分を0で埋めることになります。

例えば2月3日を02月03日と表示したい場合です。

目次

PHPの0埋めする方法

0埋めするにはsprintf()を使います。

sprintf()はフォーマットする関数で、0埋めのフォーマットに数値を当てはめるだけです。

0埋めする場合は次のように書きます。

$num = 8;
echo sprintf('%03d', $num);

これで結果は次のようになります。

008

簡単に0埋めできますね。

 

これは結構一般的でよく使うのですが、%03d の部分のルールっていまいち分からないです。

sprintf()の解説

[aside type=”normal”]sprintf($フォーマット, $値1, $値2, ・・・)[/aside]

第1引数の$フォーマットは、出力結果のフォーマットです。

第2引数以降の$値Nは、フォーマットに埋め込む値です。

戻り値はフォーマットされた文字列になります。

 

フォーマット(%03d)の % は、ここから置換文字列だということを示しています。

最後の d は、10進数の数値であることを定義します。

dの前の 3 は桁数です。

 

そして 0 は 0埋めの0になるようですが・・・ここだけいまいちピンときません。

何も書かないと半角スペースで指定した桁数まで埋めててくれます。

じゃ 1 を指定すると1埋めしてくれるのか?というとそうではないようです。

$num = 8;
echo sprintf('%15d', $num);

試しに上のようなコードを書いてみました。

結果は当たり前ですが半角スペースで15桁埋めてくれました(笑)

              8

 

アルファベットやとどうだろう?

0 の代わりに z を入れてみました。

$num = 8;
echo sprintf('%z5d', $num).$br;

結果は、

5d

となりました。

%zまでで1つのフォーマットと判断されたようですね。

 

10進数で0埋めする場合は、「%0~d」はお決まりで~に桁数を入れるという使い方!というルールなんだと思います。

まとめ

ちょっとしっくり来ない終わり方をしてしまいましたが、0埋めの方法に関してはこの書き方はよく使われます。

覚えておいて損はないです。

この記事を書いた人

ライターのプロフィールが入ります。このライター情報を入れたくない場合は管理画面の ユーザー > あなたのプロフィールの「プロフィール情報」を未入力にすれば表示されません。逆に「プロフィール情報」を入力することでライター情報を表示できます。

コメント

コメントする

CAPTCHA


目次
閉じる