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

PHP多维数组中按重复键值对应元素求和问题求助

嘿,刚接触PHP不用慌,这个按键0分组求和的需求其实很好实现,我给你一步步拆解:

首先,先把你的数组片段整理成标准的PHP二维数组格式(你之前的输出其实是多个一维数组,实际应该是一个包含这些一维数组的二维数组):

$originalArray = [
    [0 => 3, 1 => 1],
    [0 => 3, 1 => 2],
    [0 => 3, 1 => 128],
    [0 => 39, 1 => 4]
];

接下来分两步完成需求:

第一步:按键0的值分组求和

我们先创建一个临时数组,用键0的值作为新数组的键,用来累加对应的键1数值:

$summedGroups = [];

foreach ($originalArray as $item) {
    // 提取当前项的键0值作为分组标识
    $groupKey = $item[0];
    // 提取当前项的键1值作为要累加的数
    $valueToAdd = $item[1];

    // 如果这个分组已经存在,就累加数值;否则初始化分组的初始值
    if (isset($summedGroups[$groupKey])) {
        $summedGroups[$groupKey] += $valueToAdd;
    } else {
        $summedGroups[$groupKey] = $valueToAdd;
    }
}

这一步之后,$summedGroups的结构会是[3 => 131, 39 => 4],已经完成了求和,但格式还不是你想要的。

第二步:转换成目标数组格式

把上面的键值对数组,转成每个元素都是[0 => 分组键, 1 => 求和值]的二维数组:

$resultArray = [];
foreach ($summedGroups as $key => $total) {
    $resultArray[] = [0 => $key, 1 => $total];
}

验证结果

最后用print_r($resultArray)输出,就能得到你期望的结果:

Array
(
    [0] => Array
        (
            [0] => 3
            [1] => 131
        )

    [1] => Array
        (
            [0] => 39
            [1] => 4
        )

)

整个逻辑很直观,先分组求和再调整格式,适合刚接触PHP的新手理解,要是有不懂的地方随时问!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:45:33