You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP数组整数求和咨询:现有实现是否正确?有无其他方式?

计算混合数组中整数和的方法及当前实现验证

你的当前实现方法是正确的,逻辑清晰,能够准确筛选出数组中的整数并计算它们的总和,完全可以达成需求。不过借助PHP的内置函数,我们可以简化流程、提升效率,下面是几种更高效的实现方式:

1. array_filter() + array_sum()(最简洁的内置函数组合)

利用array_filter()直接筛选数组中的整数,再通过array_sum()一键计算总和,无需额外存储数组或二次遍历:

$arr = [1, 'a', 3.14, 5, true, '7', 9];
// 注:is_int()对布尔值true、字符串数字均返回false,和你的原逻辑完全一致
$intSum = array_sum(array_filter($arr, 'is_int'));
echo $intSum; // 输出 15(1+5+9)

2. array_reduce()一步完成筛选+求和

通过array_reduce()在单次遍历中同时完成整数判断与累加,减少遍历次数:

$arr = [1, 'a', 3.14, 5, true, '7', 9];
$intSum = array_reduce($arr, function($carry, $item) {
    if (is_int($item)) {
        $carry += $item;
    }
    return $carry;
}, 0); // 初始累加值设为0
echo $intSum; // 输出 15

3. 简化原逻辑:单次foreach直接累加

不需要创建额外数组存储筛选结果,直接在遍历原数组时判断并累加,节省内存开销:

$arr = [1, 'a', 3.14, 5, true, '7', 9];
$intSum = 0;
foreach ($arr as $item) {
    if (is_int($item)) {
        $intSum += $item;
    }
}
echo $intSum; // 输出 15

内容的提问来源于stack exchange,提问作者New_guy_in_here

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:19:58