$a = '88';
$b = '88 8888';
echo (int)$a;
echo (int)$b;
如预期的那样,两者都产生88.任何人都知道是否有一个字符串到int函数将适用于$ b的值并产生888888?我用Google搜索了一下,没有运气。
由于
答案 0 :(得分:40)
您可以在转换为int
之前删除空格:
(int)str_replace(' ', '', $b);
另外,如果要剥离其他常用的数字分隔符(例如,
),可以给函数一个数组(请注意 - 在某些国家/地区,例如我的逗号,使用逗号)分数表示法):
(int)str_replace(array(' ', ','), '', $b);
答案 1 :(得分:12)
如果你只想留下数字 - 请使用preg_replace,如:(int)preg_replace(“/ [^ \ d] + /”,“”,$ b)。
答案 2 :(得分:1)
你甚至想要结果是什么? 888888?如果是这样,只需删除str_replace
的空格,然后转换。
答案 3 :(得分:1)
替换空白字符,然后转换它(使用intval函数或通过常规类型转换)
intval(str_replace(" ", "", $b))
答案 4 :(得分:0)
首先使用str_replace
删除空格?
答案 5 :(得分:0)
这样声明变量$ b时,可以使用str_replace
:
$b = str_replace(" ", "", '88 8888');
echo (int)$b;
或者最漂亮的解决方案是使用intval:
$b = intval(str_replace(" ", "", '88 8888');
echo $b;
如果您的值“ 88 888”来自其他变量,只需将“ 88 888”替换为包含您的字符串的变量。