首页 > 后端开发 > php教程 > 如何在 PHP 中按列对二维数组中的数据进行分组和求和?

如何在 PHP 中按列对二维数组中的数据进行分组和求和?

Patricia Arquette
发布: 2024-11-09 09:15:02
原创
935 人浏览过

How to Group and Sum Data in a 2D Array by Column in PHP?

按列对二维数组数据进行分组和求和

在此编程场景中,目标是按一列对二维数组的行进行分组值(例如“dd”),然后对每组内另一列(“数量”)的值求和。结果是一个具有唯一“dd”值和聚合数量信息的简化二维数组。

示例:

考虑以下输入数组:

[
    ['quantity' => 5,  'dd' => '01-Nov-2012'],
    ['quantity' => 10, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 4,  'dd' => '03-Nov-2012'],
    ['quantity' => 15, 'dd' => '03-Nov-2012'],
]
登录后复制

所需的输出数组将是:

[
    ['quantity' => 15, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 19, 'dd' => '03-Nov-2012'],
]
登录后复制

使用 PHP 的解决方案:

要实现此数据转换,我们可以利用 PHP 的内置数组和循环功能:

// Input array
$in = array(array());

// Create output array
$out = array();

// Iterate through input rows
foreach ($in as $row) {
    // Check if 'dd' key exists in output array
    if (!isset($out[$row['dd']])) {
        // Initialize entry for 'dd' with empty quantity
        $out[$row['dd']] = array(
            'dd' => $row['dd'],
            'quantity' => 0,
        );
    }

    // Accumulate quantity for 'dd' key
    $out[$row['dd']]['quantity'] += $row['quantity'];
}

// Adjust output array to numerical indexing
$out = array_values($out);

// Display output array
var_dump($out);
登录后复制

以上是如何在 PHP 中按列对二维数组中的数据进行分组和求和?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板