PHPでプルグラミングをしていると「010」や「02200」などの入力があった際、文字列として扱いたくない際などに
先頭の0を除去したいときがあると思います。
今回の記事では、PHPで先頭の0を除去する方法について紹介します。
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