2011-08-10 138 views
23
$a = '88'; 
$b = '88 8888'; 

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

不如预期,都产生88.任何人都知道,如果有一个字符串为int的功能,会为$ B的值工作并888888?我搜索了一下,没有运气。PHP字符串为int

谢谢

+2

什么int值你期待的$ B? 888888? – Pelshoff

+1

当PHP将字符串转换为整数时,PHP不遵循“ISO标准31-0”。 PHP有自己的规范,这里概述:[字符串转换为数字](http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion)。 – hakre

回答

34

可以铸造int之前删除空格 - 在一些国家,像我这样的,例如,逗号用于分数表示法):

(int)str_replace(array(' ', ','), '', $b); 
+8

或如果你想删除所有非数字字符(int)preg_replace('#[^ 0-9] +#','',$ b); –

1

你甚至想要结果是什么? 888888?如果是这样,只需删除空格str_replace,然后转换。此外

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

,如果你想要去除其他常用的数字分隔符(如,),你可以给功能的阵列(虽然当心 - :

0

使用str_replace先删除空格?

12

如果您只想保留数字,请使用preg_replace,如:(int)preg_replace(“/ [^ \ d] + /”,“”,$ b)。

0

更换空白字符,然后将其转换(使用INTVAL功能或定期类型转换)

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