强制转换整数php-从字符串中删除符号
我有这个代码,我做了一个强制转换整数php-从字符串中删除符号,php,casting,Php,Casting,我有这个代码,我做了一个cast来删除符号€ $t = "€2000"; $venc = (int)$t; echo $venc; // actually echo is 0 and i want 2000 (remove symbol) 输出是0,而不是2000,因此,代码没有像我预期的那样工作 (int)$t的原因是什么不是echo 2000 谢谢强制转换例程不会删除无效字符,而是从开头开始,当到达第一个无效字符时停止,然后将其转换为数字。在您的情况下,欧元符号无效
cast
来删除符号€
$t = "€2000";
$venc = (int)$t;
echo $venc; // actually echo is 0 and i want 2000 (remove symbol)
输出是0
,而不是2000
,因此,代码没有像我预期的那样工作
(int)$t的原因是什么代码>不是echo 2000
谢谢强制转换例程不会删除无效字符,而是从开头开始,当到达第一个无效字符时停止,然后将其转换为数字。在您的情况下,欧元符号无效,它是第一个字符,因此生成的数字为0
检查
您可以尝试(int)preg_replace('/\D/ui','$t)代码>
然而,如果你处理的是货币,你不应该忘记它们不是整数,而是浮动
(float)preg_替换('/[^0-9\.]/ui',''$t)代码>这可以帮助您
$t = preg_replace('/[^0-9]/i', '','€2000');
$venc = (int)$t;
echo $venc;
使用
比我的if/else/index\u of/is\u数值方法优雅多了。欧式符号的lolstrlen是3;-)
echo substr($t,3); // returns "2000"
$t = "€2000";
$venc = (int)substr($t,1);
echo $venc;