强制转换整数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;