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

PHP中如何根据数组索引关联,按分组键对另一数组元素求和?

如何根据对应数组的分组对另一个数组元素求和

这其实是个很典型的数组分组求和场景,咱们可以用非常直观的遍历方式来实现,步骤清晰还容易理解:

核心思路

以$array_2中的分组标识(比如'DK'、'GA')为键,同步遍历两个数组的对应位置,把$array_1中相同分组对应的值累加起来,最后就能得到每个分组的总和。

完整实现代码

// 你的原始数组,转成更简洁的短数组语法
$array_1 = [4, 6, 2, 6, 4, 10, 4, 6, 2, 2, 4, 4, 2, 2];
$array_2 = ['DK', 'GA', 'DK', 'GA', 'DK', 'GA', 'WE', 'VE', 'WE', 'VE', 'PLA', 'PRA', 'PLA', 'PRA'];

// 初始化空数组,用来存储每个分组的累加和
$group_total = [];

// 同时遍历两个数组的索引和对应值
foreach ($array_2 as $key => $group_name) {
    // 如果当前分组还没被记录,先初始化为0
    if (!isset($group_total[$group_name])) {
        $group_total[$group_name] = 0;
    }
    // 累加$array_1中对应位置的值
    $group_total[$group_name] += $array_1[$key];
}

// 把累加结果赋值到你需要的单独变量中
$dk = $group_total['DK'];
$ga = $group_total['GA'];
$we = $group_total['WE'];
$ve = $group_total['VE'];
$pla = $group_total['PLA'];
$pra = $group_total['PRA'];

// 验证输出结果,和你想要的格式一致
echo "\$dk=4+2+4={$dk};\n";
echo "\$ga=6+6+10={$ga};\n";
echo "\$we=4+2={$we};\n";
echo "\$ve=6+2={$ve};\n";
echo "\$pla=4+2={$pla};\n";
echo "\$pra=4+2={$pra};\n";

代码说明

  • 这种方法只需要一次遍历数组,时间复杂度是O(n),效率很高,不管$array_2里有多少种分组,都能自动处理,不需要手动为每个分组写判断逻辑。
  • 如果后续分组有新增或者变化,代码不需要做任何修改,兼容性很强。

内容的提问来源于stack exchange,提问作者Md. Shamvil Hossain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:00:55