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など他の言語開発者にとっては違和感があるかもしれませんね。
そう難しくはありませんが「どうやったっけ?」となりがちな処理。メモとして置いておきます。
コメントする