我只是试图将包含用逗号分隔的数字的数组解析为没有逗号的数字,但仍然是数组形式。但这没有用。
我的代码:
$arrTot = array_filter(array_slice($total, 20));
print_r($arrTot);
数组结果: Array ( [0] => 10,000 [1] => 100,000 [2] => 200,000 ) 我想要的输出是擦除所有数量的逗号:
(
[0] => 10000
[1] => 100000
[2] => 200000
)
我已经尝试过像这样的事情,但似乎与我想要的输出还不很接近:
$arrTot = array_filter(array_slice($total, 20));
for ($i=0; $i < count($arrTot); $i++) {
$valTot=str_replace( ',', '', $arrTot[$i]);
print_r($valTot);
}
有什么办法解决这个问题?
谢谢。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要实现您的需求,您可以通过遍历数组,并使用 str_replace()
函数或者直接类型转换(例如 (int)
或 intval()
)来移除每个元素中的逗号。这里提供一个简单的示例代码,展示如何使用 str_replace()
来达到目的:
$arrTot = array_filter(array_slice($total, 20));
// 使用 str_replace 去除逗号并转换为整数
foreach ($arrTot as $key => $value) {
$arrTot[$key] = (int)str_replace(',', '', $value);
}
print_r($arrTot);
这段代码首先保留了您原有逻辑生成的 $arrTot
数组,然后通过 foreach 循环遍历数组中的每个值。对于每个值,它使用 str_replace(',', '', $value)
移除逗号,之后通过类型转换 (int)
将字符串转为整数。这样处理后,您将得到一个没有逗号且元素为整数形式的新数组。
另一种更简洁的方法是直接使用匿名函数结合 array_map()
函数来完成这个任务:
$arrTot = array_filter(array_slice($total, 20));
// 使用 array_map 和匿名函数去除逗号并转换为整数
$arrTot = array_map(function($value) {
return (int)str_replace(',', '', $value);
}, $arrTot);
print_r($arrTot);
这段代码同样实现了您的需求,但采用了更加函数式编程的风格,使得代码更为紧凑。