PHPで先頭から0を削除する方法

シェアする

PHPでプルグラミングをしていると「010」や「02200」などの入力があった際、文字列として扱いたくない際などに
先頭の0を除去したいときがあると思います。

今回の記事では、PHPで先頭の0を除去する方法について紹介します。

PHPで数字の0埋めする方法について紹介しています。sprintf関数とstr_pad関数を使用した方法を紹介しています。また、関数の使い方についても合わせて紹介しています。

intにキャストする

一番簡単に、先頭の0を削除する方法は、intにキャストしてしまうことだと思います。「00133」などはPHPでは文字列として扱われるので、intにキャストしてしまえば、先頭の0を削除してしまうことが出来ます。

$str = "000100";
$str = (int)$str;
echo $str;//100

ltrim()を使う

PHPにはltrim()関数というものがあります。
ltrim()関数は、文字列の左端の空白を削除するかんすうなのですが、第二引数を指定すると指定した文字を左から削除してくれます。

$str = "000100";
$str = ltrim($str, 0);
echo $str;//100

上記の処理を動かしてもらうと分かりますが、一度1が出てきた後の0は削除されません。
この方法で先頭の0を除去することが出来ます。

abs()関数を使用する

abs()関数は、数値の絶対値を取得する関数です。
この関数を利用することでも先頭の0を削除することが出来ます。
この関数を使用することで、先頭の0を削除することも出来ますしこの場合は、小数点以下の数値がある場合にも使用することが出来ます。

$str = "000100.01";
$str = abs($str);
echo $str;//100.01

正規表現を使う

正規表現を使用することで先頭の0を削除することが出来ます。
この場合も小数点以下の数値があっても先頭の0を削除することが出来ます。

$str = "000100.01";
$str = preg_replace('/^0+/','', $str);
echo $str;//100.01

まとめ

今回の記事では、PHPで先頭の0を除去する方法について紹介しました。
小数点が存在する場合などは、単純にintにキャストするだけでダメそうですが、floatへのキャストで対応出来ますし、色々やり方は、他にもありそうです。

floatへのキャスト

$str = "000100.01";
$str = (float)$str;
echo $str;//100.01

[参考]How to remove all leading zeroes in a string

シェアする

フォローする