CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

PHPで文字型の数値に0埋め処理をする方法です。

DBではアクセス数を固定長の文字列で管理することがあります。
しばしば、データ型を定義するのがめんどくさくて、一律文字列を指定してあるテーブルを見かけますが、その場合アクセス数などは0埋めしなければ正確にソートできません。例えば、文字列「4」と文字列「10」とでは、文字列「4」が大きいという判定になってしまいます。つまり、この場合だと「00000004」と「00000010」というようにデータを格納しておかないと正しくソートされないわけです。

このような場面において、PHPでは以下のようにして0埋め処理を行います。

$count = 10;
while(mb_strlen($count) < 8){
	$count = "0" . (string)$count;
}
echo $count;

上記の出力結果は「00000010」になります。
整数「8」はゼロ埋め処理をして8桁にすることを指定しています。

こうして改めて眺めてみると、PHPでは厳密にデータ型を指定しないので、処理前は「10」を持っていた変数が、処理後にechoで文字列出力される点は、JAVAなど他の言語開発者にとっては違和感があるかもしれませんね。

そう難しくはありませんが「どうやったっけ?」となりがちな処理。メモとして置いておきます。

このエントリーをはてなブックマークに追加

Monthly Archives

Search