2011-08-10 139 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))