PHP

PHP

【PHP】数字を指定の桁数にフォーマット(0埋め)

PHPを使って、数字を指定した桁数にフォーマットする方法

数字の前を0で埋めて(ゼロ埋め)、数字を特定の桁数にフォーマットしたい事ってよくあると思います。

例えば、月を2桁で揃えたい場合、
左側を「0」で埋めて「01、02、・・・、11、12」というように出力するような場合です。

これはゼロパディングと言い、sprintf()str_pad()を使えば、楽に機能を実装出来ます。

どちらも便利な関数なので、簡単にまとめておきます。

sprintf()を使って、フォーマット

使い方:sprintf("フォーマット", "フォーマットしたい文字列");

例えば、
echo sprintf("%02d", "1");
とすれば2桁にフォーマットされて「01」と出力されます。
もし、
5桁にフォーマットしたい場合には、
echo sprintf("%05d", "1");
と変更するだけです。

応用例:echo "今月は " . sprintf("%02d", "9") . "月 です。"; =>「今月は 09月 です。」

 

str_pad()を使って、フォーマット

使い方:str_pad("フォーマットしたい文字列", "桁数", "埋める文字", タイプ);
第4引数の「タイプ」には、STR_PAD_LEFT(左側を埋める)、STR_PAD_RIGHT(右側を埋める)、STR_PAD_BOTH(両側を埋める)のいずれかを指定します。

例えば、
echo str_pad("1", 2, "0", STR_PAD_LEFT);
とすれば2桁にフォーマットされて「01」と出力されます。

応用例:echo "今月は " . str_pad("9", 2, "0", STR_PAD_LEFT) . "月 です。"; =>「今月は 09月 です。」

 

最後に

ざっくりとまとめましたが、これらの関数は使う機会が多いです。

ゼロパディングしたい場合には、どちらかの関数を使うことが一般的ですが、
私はsprintf()の方が引数も少なく分かり易いので、こちらをよく使っています。

どちらかを使うかは、好みでいいと思います。

因みに、
速度もsprintf()の方が早いみたいです。
参考:http://php.net/manual/ja/function.str-pad.php

関連記事

  1. PHP

    PHP

    PHP PDFファイルのアップロード機能を追加

    お客様から、既存システムにPDFファイルをアップロードする機能を追…

  2. MySQL

    PHP

    プレースホルダ(プリペアド・ステートメント)

    私が入社する前に外注先に組んで貰ったかなり古いプログラムになるのですが…

  3. PHP

    PHP

    PHPでWarningエラーが!!

    PHPでこんなエラーが↓PHP Warning:  PHP Sta…

  4. PHP
  5. PHP

    PHP

    【PHP】count関数でエラーが出ました。。。

    かなり昔に弊社が作成したシステムがあるのですが、諸々の理由で別サー…

  6. PHP

    PHP

    【PHP】FPDF PDFセル内での改行

    FPDFで1つのセル内で長い文章を表示させようとすると、改行されず…

最近の記事

  1. JavaScript
  2. バージョンアップ
  3. JavaScript
  4. セキュリティー
  5. JavaScript
PAGE TOP