PHPで数字の0埋めする方法

以前の記事でPHPで先頭から0を削除する方法について紹介しいました。

PHPで先頭から0を削除する方法について紹介しています。小数点が想定される場合などの対応についても紹介しています。PHP で先頭の0を除去したい際の参考にしてください。

月や日、時刻などで逆に0埋めをしたいことということがあると思います。

今回の記事では、PHPで0埋めをする方法について紹介します。

sprintf関数を使う

sprintf(文字列のフォーマット, 入力したい文字1, 入力したい文字2, ・・・)

と言った感じで使用します。

echo sprintf('%02d', 5); // 05
echo sprintf('%03d', 5); // 005
sprintf("%s 君は %s を %d 個食べました。", "太郎", "りんご", 7) //太郎 君は りんご を 7個食べました。

%02や%03のように埋めたい文字と桁数を指定して、行います。
この関数は、3つ目の例のように文字を入れることも可能です。その際は、%s」には文字列を、「%d」には数値を代入します。

str_pad関数を使う

str_spad( 入力したい文字, 文字列サイズ, 埋める文字 , タイプ)

と言った感じで指定します。

$value = 123;
$len = 5;
//デフォルトはスペース埋め左埋め
echo str_pad($value, $len); // => "123  "

//指定した文字で埋める
echo str_pad($value, $len, 0, STR_PAD_LEFT); // => "00123"

0埋めをしたい場合は、左埋めにしたいので、STR_PAD_LEFTを指定します。
指定できるタイプは次のようなものがあります。

タイプ 意味
STR_PAD_RIGHT 文字列の右側を埋める(デフォルト)
STR_PAD_LEFT 文字列の左側を埋める
STR_PAD_BOTH 文字列の両側を埋める

まとめ

今回は、PHPで0埋めをする方法について紹介しました。
月などを0埋めしたい機会などは、結構あると思うので使用機会の多い関数だと思います。
また、スペース埋めしたいときなどにも利用できる関数です。

ぜひ、覚えておくと良いと思います。