您的位置:首页 >按 x\_axis 分组累加 y\_axis 总和
发布于2026-04-09 阅读(0)
扫一扫,手机访问

本文介绍如何在 PHP 中对二维关联数组按指定键(如 x_axis)分组,并将对应另一键(y_axis)的值进行累加合并,最终生成去重且聚合后的结构化数组。
本文介绍如何在 PHP 中对二维关联数组按指定键(如 x_axis)分组,并将对应另一键(y_axis)的值进行累加合并,最终生成去重且聚合后的结构化数组。
在数据处理场景中,常需对具有重复分类标识(如时间戳、ID、坐标轴标签等)的数值型记录进行聚合汇总。例如,给定一组形如 ['x_axis' => $x, 'y_axis' => $y] 的数据,当多个元素拥有相同的 x_axis 值时,需将其对应的 y_axis 值相加,合并为单条记录。
实现该逻辑的核心思路是:以 x_axis 为键构建临时聚合映射表,遍历原始数组累计 y_axis 值,最后重新格式化为标准索引数组。以下为推荐实现:
<?php
function mergeByXAxis(array $data): array
{
$aggregated = [];
// 第一步:按 x_axis 聚合 y_axis 总和
foreach ($data as $item) {
$x = $item['x_axis'] ?? null;
$y = $item['y_axis'] ?? 0;
if ($x !== null) {
$aggregated[$x] = ($aggregated[$x] ?? 0) + $y;
}
}
// 第二步:重构为原始结构的索引数组
$result = [];
foreach ($aggregated as $x => $y) {
$result[] = ['x_axis' => $x, 'y_axis' => $y];
}
return $result;
}
// 示例数据
$data = [
['x_axis' => 8, 'y_axis' => 1],
['x_axis' => 9, 'y_axis' => 1],
['x_axis' => 11, 'y_axis' => 2],
['x_axis' => 11, 'y_axis' => 3],
];
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
)
)? 注意事项:
此模式广泛适用于图表数据预处理、报表统计、API 响应聚合等场景,是 PHP 数组操作中的典型实用技巧。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9