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

    split()関数とexplode()関数

    サーバーのバージョンを5.3へアップした途端、PHP Deprec…

  2. PHP

    PHP

    CakePHPのtinyintでハマった!!

    CakePHPでデータベースを作成する時には注意しないといけない点があ…

  3. PHP

    PHP

    PHPExcelを使ってエクセルを出力

    弊社のお客様はほぼ不動産業者様ということで、時々物件データの図面を…

  4. PHP

    PHP

    CakePHPのヘルパーからモデルを呼び出す

    CakePHPは当然ですが、MVCモデルをベースとしたフレームワー…

  5. PHP

    PHP

    strposではまりました!!

    strposではまりました!!複数のコードを「,」…

  6. PHP

    PHP

    ファイルの読み込みで文字化けが発生します!!

     今日は文字化けでハマりました。大量の住所データを…

最近の記事

  1. WordPress(WP)
  2. PHP
  3. 宅建
  4. アンチWP
  5. 日本語ドメイン
  6. WordPress(WP)
  7. SSL(HTTPS通信)
  8. JavaScript
  9. バージョンアップ
  10. JavaScript
PAGE TOP