PHP 将格式化的 int 转换为 int


php converting formatted int to int

很抱歉问这个问题,但是,我找不到一个解决方案可以得到这个 -> 7,000 到 7000。

我正在使用 intval() 和 number_format(),但它只会给我 7 而不是 7000。

$myVal = '7,000';
echo intval($myVal);

这将返回 7

number_format() 也是如此

我做错了什么?

如果您使用的是 PHP>= 5.3(或者安装了"intl"扩展,至少为 1.0 版),那么您也可以使用 NumberFormatter 类来解析特定于区域设置的数字。

$myVal = '7,000';
$nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL);
var_dump($nf->parse($myVal, NumberFormatter::TYPE_INT32));
# output: int(7000)

如果您使用的是低于 5.3 的 PHP 版本,则最好使用 @KevinS. 解决方案。

由于逗号,intval()无法使用您拥有的字符串。您可以使用str_replace()逗号删除逗号,然后像这样调用intval()

echo intval(str_replace(',', '', $myVal))