PHPで先頭の0を削除する方法 | 正規化と日付分割に役立つ手法を解説

まゆ
先頭の0を削除する方法が知りたいです!

PHPで数値や文字列として扱われる値の先頭に0が含まれている場合、一部の演算や比較処理で意図しない結果が生じることがあります。この記事では、PHPで先頭の0を削除する方法について詳しく解説します。また、日付の分割や文字列から数値への変換、正規表現の活用についても紹介します。

目次

先頭の0を削除する重要性

先頭に0が含まれる数値や文字列は、PHPの演算や比較処理において予期しない結果をもたらすことがあります。たとえば、数値の比較や等値判定では、先頭の0があると文字列としての比較が行われ、意図しない結果が得られることがあります。そのため、正しい結果を得るためには、先頭の0を削除する必要があります。

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

以下の方法を使って、PHPで先頭の0を削除することができます。

セイヤ
0を削除できる関数を紹介するよ!

intキャストを使用する方法

先頭の0を削除するためには、数値をint型にキャストする方法があります。これにより、先頭の0が自動的に削除されます。

$number = "0123";
$number = (int)$number; // 123

この方法はシンプルで簡単ですね!

ltrim関数を使用する方法

ltrim関数を使用して、先頭の0を削除する方法もあります。

$number = "0123";
$number = ltrim($number, '0'); // "123"

ltrim($number, '0') は、$number の先頭から連続する ‘0’ の文字を削除します。結果として、文字列 “123” が得られます。

abs関数を使用する方法

abs関数を使用する方法もあります。

$number = "0123";
$number = abs($number); // 123

abs()関数は、数値の絶対値を取得する関数です。
この関数を利用することでも先頭の0を削除することが出来ます。

正規表現を使用する方法

正規表現を使用する方法もご紹介します。

$number = "0123";
$number = preg_replace('/^0+/', '', $number); // 123

正規表現パターン /^0+/ を使用して、$number の先頭から連続する ‘0’ の文字列を空文字列で置換します。結果として、文字列 “123” が得られます。
最後に、置換された結果の文字列 “123” を新しい値として、変数 $number に代入します。

日付の分割と先頭の0を削除する方法

日付を扱う場合にも、先頭の0を削除する必要があったりします。以下では、日付を分割して先頭の0を削除する方法について説明します。

セイヤ
日付を操作していたら、先頭の0が邪魔ってことありますよね。

日付を分割する方法

まずは日付(2023-05-01)を年、月、日に分割していきます。
年、月、日に分割するには、explode関数を使用します。

$date = "2023-05-01";
list($year, $month, $day) = explode('-', $date);

explode('-', $date) を使用することで、ハイフン(”-“)を区切り文字として文字列を分割します。
分割された部分は、それぞれの変数に代入されます。

以下が各変数に入っている値です
・$year: “2023”
・$month: “05”
・$day: “01”

あわせて読みたい
【PHP 初心者向け】複数の区切り文字で文字列を分割する2つの方法 区切り文字で文字列を分割する関数といえばexplode関数を思いつく方もいると思います。しかしexplodeは、1つの区切り文字でしか分割できません。そこで今日は、複数の...
分割する方法を詳しく解説しています

日付の0を削除する

分割した年、月、日に対して、先頭の0を削除する方法は、先ほど説明した削除方法を適用します。

$year = ltrim($year, '0'); // 2023
$month = ltrim($month, '0'); // 5
$day = ltrim($day, '0'); // 1

これで先頭の0を取り除くことができました!

まとめ

PHPで先頭の0を削除する方法について、intキャストabs関数ltrim関数正規表現などを紹介しました。また、日付の分割や文字列から数値への変換と組み合わせて先頭の0を削除する方法も説明しました。これらの方法を適用することで、PHPで正確な数値の処理や比較を行うことができます。

まゆ
いろんなやり方があるんですね!私はintキャストを使ってみます!

それでは最後までお読みいただきありがとうございました!

プログラミングスクールランキング一覧

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次