【PHP】ゼロ埋め ゼロ除去を簡単に実装

PHP

ゼロ埋めや、ゼロ除去をスマートに実装する方法のご紹介です。

スポンサーリンク

sprintfでゼロ埋めをスマートに実装

例えば月日をゼロ埋めしたり、IDをゼロ埋めしたくなるシーンがぽつぽつあります。
01月01日
000001
とか。

そんな時は、sprintfでゼロ埋めをしてあげるとよいでしょう。

echo sprintf('%02d', 1); // 01
echo sprintf('%05d', 1); // 00001

若干脱線しますが、以下のようにテキストと混合して使用することもできます。

$name = "田中";
$id = 50;
echo sprintf("%s 様の会員IDは %05d です。", $name, $id); // 田中 様の会員IDは00050 です。

「%s」には文字列を、「%d」には数値を代入することができます。
「%f」で浮動小数点数や「%u」で符号なしの整数などを設定することもできます。

PHP: sprintf - Manual


trimでゼロ除去をスマートに実装

次はゼロ埋めとは逆にゼロ除去です。
IDを数値に戻して検索でひっかけり、ゼロを除去したいシーンも結構ありますよね。

その際、左側のゼロを除去するのか、右側のゼロを除去するのかで使用するtrimが変わってきますので間違えず、両方押さえておきましょう!

ltrimで左ゼロ除去

左側のゼロを除去したい場合はltrimを使用します。
leftの左でltrimということでしょうか。

echo ltrim("00050", "0"); // 50
echo ltrim("00500", "0"); // 500
echo ltrim("00050", 0); // 50
PHP: ltrim - Manual

rtrimで右ゼロ除去

右側のゼロを除去したい場合はrtrimを使用します。
rightの右でrtrimってことですね。

echo rtrim("00050", "0"); // 0005
echo rtrim("00500", "0"); // 005
echo rtrim("00050", 0); // 0005
PHP: rtrim - Manual

「l」と「r」で一見間違えそうですが、意味を考えると間違えず覚えられそうですね!

タイトルとURLをコピーしました