kwsktr's study log

kwsktr のおべんきょログ

桁をゼロで埋めたい(ゼロパディング) :: PHP, JavaScript, MySQL

桁をゼロで埋めたいことってありますよね。
サイボーグ009』の「009」をどうやって表現しようか、とかそんなときに。


ということで、ゼロパディングの方法を書いてみたいと思います。

PHPゼロパディング

PHP では sprintf関数を使うのが一般的です。

PHP: sprintf - Manual

<?php
$num = 9;
$zerozeronine = sprintf('%03d', $num);

var_dump($zerozeronine);  //  string(3) "009"

sprintf のフォーマット部分がちょっと解りにくいかもしれないですが、
’’ で括って、
%03 で桁を3桁に指定して
d で十進数で表現しているだけのことです。


もう少し詳しく知りたければ、sprintf の例7を見るのがいいかもですね。

JavaScriptゼロパディング

JavaScript には PHP でいう sprintf関数のようなものがありません。
変わりに使えるのは、slice関数です。


String.prototype.slice - JavaScript | MDN

var num = 9;

var zerozeronine = ("00000" + num).slice(-3);

console.debug(zerozeronine);  // 009

slice関数の負の引数が解りにくいかも知れませんが、
文字列 ”00000” と 数値 9 が入った変数 num を

  1. で繋げたあとで、

「後ろから3文字分」取り出した、と解釈してください。

MySQLゼロパディング

MySQL では、型を指定するときに ZEROFILL オプションをつけるだけですね。

`number` int(3) ZEROFILL;

insert into `number` values(9);


id をふりたいときなどの備忘録的なメモでした。