PHPで文字列に含まれる数字を数値に変換する方法
変数に格納されている文字列に含まれる数字を数値に変換するには、
settype(変数,"integer")
とすればよい。
例1 変数←「数字」
$str = "2011";
settype($str,"integer");
echo $str;
《出力結果》
2011
例2 変数←「数字+数字以外」
$str = "2011年";
settype($str,"integer");
echo $str;
《出力結果》
2011
※文字列に含まれる数字以外は削除されるようだ。
例3 変数←「数字+数字以外+数字+数字以外+数字+数字以外」
$str = "2011年9月18日";
settype($str,"integer");
echo $str;
《出力結果》
2011
※文字列に含まれる数字のみを抽出して「2011918」という結果になるかな、と期待したのだが、「2011」のみだった。文字列に数字と数字以外が混在する場合は、最初に出現する先頭の数字のみを取り出し、その数字以降に登場する文字列は数字も含めて削除するようだ。
例4 変数←「数字以外+数字+数字以外」
$str = "西暦2011年";
settype($str,"integer");
echo $str;
《出力結果》
0
※文字列の先頭が数字以外の場合、以降の文字列に数字が含まれているかどうかには関係なく、出力結果は0になるようだ。
例5 変数←「数字以外」
$str = "西暦";
settype($str,"integer");
echo $str;
《出力結果》
0
※文字列に数字が含まれない場合は、出力結果は0になるようだ。