web-dev-qa-db-ja.com

intへのphp文字列

$a = '88';
$b = '88 8888';

echo (int)$a;
echo (int)$b;

予想通り、両方とも88を生成します。$ bの値で動作し、888888を生成するint関数への文字列があるかどうかは誰でもわかりますか?私は少し運が悪かった。

ありがとう

25
agh

intにキャストする前にスペースを削除できます。

(int)str_replace(' ', '', $b);

また、一般的に使用される他の数字区切り文字(,)、関数に配列を指定できます(ただし、一部の国では、たとえば私のように、カンマは分数表記に使用されます)。

(int)str_replace(array(' ', ','), '', $b);
40
Gabi Purcaru

数字だけを残したい場合は、(int)preg_replace( "/ [^\d] + /"、 ""、$ b)のようなpreg_replaceを使用します。

12
XzKto

空白文字を置き換えてから変換します(intval関数を使用するか、通常の型キャストによって)

intval(str_replace(" ", "", $b))
1
Silfverstrom

結果を何にしたいのでしょうか? 888888?その場合は、str_replaceでスペースを削除してから変換します。

1
Delan Azabani

そのように変数$ bを宣言するとき、str_replaceを使用できます。

$b = str_replace(" ", "", '88 8888');
echo (int)$b;

または、最も美しい解決策はintvalを使用することです:

$b = intval(str_replace(" ", "", '88 8888');
echo $b;

値「88 888」が他の変数からのものである場合、「88 888」を文字列を含む変数に置き換えるだけです。

0
Fizik26

つかいます str_replace最初にスペースを削除するには?

0
ManseUK