トップページ >  PHP >  ゼロサプレスとゼロパディング
初版2013/04/26: 最終更新日2013/04/26
ゼロサプレスとゼロパディング
目次
文字列をゼロサプレスする
サンプル
文字列をゼロパディングする(sprintf)
サンプル
文字列をゼロパディングする(str_pad)
サンプル
文字列をゼロサプレスする
文字列をゼロサプレスするには、abs関数を使用します。

第一引数・・・数値を指定します。

abs関数は本来、数値の絶対値を返す関数ですが、数値の文字列型を指定するとゼロサプレスされて数値型が返ってきます。

ゼロサプレスするには、ltrim関数を使用しても可能です。

第一引数・・・文字列を指定します。
第二引数・・・先頭から削除したい文字列を指定します。第二引数は省略可能です。

第二引数で"0"を指定すれば、ゼロサプレスすることが可能です。

サンプル
<?php
    $str1 = "000000123";
    $str1 = abs($str1);
    printf("%s<br />",$str1);

    $str2 = "0000001256";
    $str2 = ltrim($str2,"0");
    printf("%s<br />",$str2);
?>

以下、実行結果です。

123
1256

文字列をゼロパディングする(sprintf)
文字列をゼロパディングするには、sprintf関数を使用します。

第一引数・・・文字列を指定します。
第二引数・・・置換文字

可変長なため、置換文字が複数ある場合は、第三、第四、、、と指定していきます。
C言語のsprintfとほぼ同じ使い方だと思います。固定8文字で数値が8桁ない場合、前ゼロをつけたい場合は、%08dと指定します。

サンプル
以下、サンプルです。

<?php
    $str1 = "123";
    echo sprintf("%08d<br />",(int)$str1);
?>

以下、実行結果です。

00000123

文字列をゼロパディングする(str_pad)
文字列をゼロパディングするには、str_pad関数を使用します。
使い方は以下のとおりです。

第一引数・・・文字列を指定します。
第二引数・・・パディングする文字数
第三引数・・・置換文字
第四引数・・・STR_PAD_RIGHT(右埋め)、STR_PAD_LEFT(左埋め)、STR_PAD_BOTH(両方)

サンプル
以下、サンプルです。

<?php
    $str1 = "123";
    echo str_pad($str1,8,"0",STR_PAD_LEFT);
?>

以下、実行結果です。

00000123