PHPで0サプレスする(数字の先頭から0を削除する)

先日、「PHPで0パディングする(数字の先頭に0をつける)」という記事を書いたのだが、その時、逆に数字の先頭に0がついている時に0を削除する(0をのける、0を除く)方法はどうしていたのだろう、と思ったが、すぐに思い出せなかったのでしばらく放っておいた。
その後、しばらくしてすぐに思い出したのだが、それを書くのを忘れていた。
今、そのことを思い出したので、忘れないうちに書いておく。

《例》
$str = "000100";
echo $str;
//出力結果:000100

echo abs($str);
//出力結果:100

絶対値を求めるためのabs関数をゼロサプレス(数字の先頭から0を除く/のける)目的で使用するのは、abs関数の本来の役割とは違うためちょっと気になるのだが、他に方法が思いつかなかったのでもう2年ほどこのまま使っている。PHP4、PHP5どちらでも問題なさそうだった。

《2011年8月24日3時17分追記》
昨日、ltrimでもゼロサプレスができるというコメントを頂いたので、早速試してみた。

$str = "000100";
echo ltrim($str,'0');
//出力結果:100

うまくいった!この方法も良いと思った。


《2014年3月15日18時27分追記》
2週間ほど前に「echo ($str+0);」で行う方法についてコメントを頂いたので、試してみた。

$str=00100;
echo ($str + 0);
//出力結果:64
→うまくいかないようだ。

$str=00101;
echo ($str + 0);
//出力結果:65
→うまくいかないようだ。

$str=0011;
echo ($str + 0);
//出力結果:9
→うまくいかないようだ。

$str=0010;
echo ($str + 0);
//出力結果:8
→うまくいかないようだ。

$str=009;
echo ($str + 0);
//出力結果:0
→うまくいかないようだ。

$str=005;
echo ($str + 0);
//出力結果:5
→うまくいった。

$str=001;
echo ($str + 0);
//出力結果:1
→うまくいった。

「echo ($str+0);」とする方法だと、ゼロサプレスの方法としてはうまくいかないようだった。

  
 

前へ

石手川ダムの貯水率が84%にまで回復した。

次へ

Resource id #2→PHPのmysql_connect()でデータベース接続が成功していることを表す