合并关联数组中相同键的值并求和:PHP 实用教程
作者:归人云淡风轻
时间:2026-07-19
浏览:1
PhpStorm macOS版
PhpStorm 是 JetBrains 推出的专业 PHP 集成开发环境,可在 Mac 上完成代码编写、智能检查、重构、调试、测试和数据库管理。它支持主流 PHP 框架、Composer、Git、Docker 与远程解释器。
¥890
Mac
2026-10-13
对二维关联数组按指定键分组,将对应另一键的值累加,生成去重聚合后的数组。采用临时键映射加二次重组策略,遍历原数组累加,再还原为标准格式。适用于数据统计与图表预处理,需确保输入包含所需键,方法高效无依赖。
本文目录
本文介绍如何在 PHP 中对二维关联数组按指定键(如 x_axis)分组,并将对应另一键(如 y_axis)的值累加,最终生成去重且聚合后的数组。方法简洁高效,适用于数据统计、图表预处理等场景。
在实际开发中,我们常需对原始数据进行聚合处理——例如将多个坐标点按横坐标(x_axis)归类,并将其纵坐标(y_axis)值相加,以生成汇总后的折线图或柱状图数据源。核心需求是:以 x_axis 为分组依据,对同组所有 y_axis 值求和,保留唯一 x_axis 条目。
实现该逻辑最清晰的方式是使用「临时键映射 + 二次重组」策略:
- 遍历原数组,以 x_axis 值作为临时数组的键,累加对应的 y_axis;
- 再次遍历临时数组,将键值对还原为标准的关联子数组格式。
以下是完整可运行的示例代码:
8, 'y_axis' => 1], ['x_axis' => 9, 'y_axis' => 1], ['x_axis' => 11, 'y_axis' => 2], ['x_axis' => 11, 'y_axis' => 3],];function mergeByXAxis(array $data): array{ $temp = []; foreach ($data as $item) { $x = $item['x_axis'] ?? null; $y = $item['y_axis'] ?? 0; if ($x !== null) { $temp[$x] = ($temp[$x] ?? 0) + $y; } } $result = []; foreach ($temp as $x => $y) { $result[] = ['x_axis' => $x, 'y_axis' => $y]; } return $result;}print_r(mergeByXAxis($data));?>✅ 输出结果:
Array( [0] => Array ( [x_axis] => 8 [y_axis] => 1 ) [1] => Array ( [x_axis] => 9 [y_axis] => 1 ) [2] => Array ( [x_axis] => 11 [y_axis] => 5 ))
⚠️ 注意事项:
- 确保输入数组每个子项都包含 x_axis 和 y_axis 键,否则建议添加 isset() 或空值校验(如示例中所做);
- 若需保持原始 x_axis 的出现顺序(而非 PHP 数组键自然排序),可在第二步使用 array_keys($temp) 配合 ksort() 或预先记录顺序;
- 对于超大数据集(如万级元素),此 O(n) 双循环方案依然高效,无需引入额外扩展。
该方法语义明确、无依赖、易维护,是 PHP 数组聚合操作的经典实践模式。
作者最新文章
coreldraw怎么插入图片 图片导入步骤
2026-10-27 15:37
coreldraw快捷键冲突 怎么改 自定义按键解决
2026-10-24 08:50
AO3中文界面设置指南与核心功能使用教程
2026-10-14 23:28
解决win10运行3DMAX自动重启的方法
2026-10-13 17:08
哔哩哔哩投稿封面上传失败怎么解决
2026-10-13 15:55
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































