首页  >  文章  >  后端开发  >  php 多维数组分组求和

php 多维数组分组求和

PHPz
PHPz原创
2023-05-07 11:52:10589浏览

随着 web 应用程序的不断发展,数据的处理和分析也变得越来越重要。而多维数组的使用是 web 开发中的常见情况。对于 php 中的多维数组,分组求和是一种经常需要的操作。本文将重点介绍 php 多维数组分组求和的实现方法。

首先,让我们来看一个例子,假设我们有一个包含产品名称、销售日期和销售额的多维数组,如下所示:

$sales = array(
      array("product" => "A", "date" => "2022-01-01", "sales" => 100),
      array("product" => "B", "date" => "2022-01-02", "sales" => 200),
    array("product" => "C", "date" => "2022-01-03", "sales" => 250),
    array("product" => "B", "date" => "2022-01-04", "sales" => 150),
    array("product" => "A", "date" => "2022-01-05", "sales" => 300),
    array("product" => "C", "date" => "2022-01-06", "sales" => 400),
);

我们想要按照产品名称对销售额进行求和,可以通过如下代码实现:

<?php

$sum = array();  // 定义存放结果的数组

foreach ($sales as $sale) {
    $product = $sale["product"];  // 获取产品名称
    $salesAmt = $sale["sales"];  // 获取销售额
   
    // 如果该产品名称不存在,则创建一个以该产品名称为键的数组元素
    if (!array_key_exists($product, $sum)) {
        $sum[$product] = 0;
    }
    
    // 将销售额加入该产品名称对应的数组元素中
    $sum[$product] += $salesAmt;
}

print_r($sum);  // 输出结果

?>

上述代码的输出结果如下:

Array
(
    [A] => 400
    [B] => 350
    [C] => 650
)

代码实现的思路是,使用 foreach 循环遍历多维数组中的每个数组元素,获取该元素的产品名称和销售额。然后,通过判断该产品名称是否已经存在于存放结果的数组中,如果不存在,则创建一个以该产品名称为键的数组元素。最后,将销售额加入该产品名称对应的数组元素中。遍历完毕后,即可得到每个产品名称对应的销售额总和。

我们还可以按照多个条件进行分组求和。例如,在上述例子中,若要按照产品名称和销售日期分组求和,则可以通过以下代码实现:

<?php

$sum = array();  // 定义存放结果的数组

foreach ($sales as $sale) {
    $product = $sale["product"];  // 获取产品名称
    $date = $sale["date"];  // 获取销售日期
    $salesAmt = $sale["sales"];  // 获取销售额
   
    // 如果该产品名称不存在,则创建一个以该产品名称为键的数组元素
    if (!array_key_exists($product, $sum)) {
        $sum[$product] = array();
    }
    
    // 如果该销售日期不存在,则创建一个以该销售日期为键的数组元素
    if (!array_key_exists($date, $sum[$product])) {
        $sum[$product][$date] = 0;
    }
    
    // 将销售额加入该产品名称和销售日期对应的数组元素中
    $sum[$product][$date] += $salesAmt;
}

print_r($sum);  // 输出结果

?>

上述代码输出的结果如下:

Array
(
    [A] => Array
        (
            [2022-01-01] => 100
            [2022-01-05] => 300
        )

    [B] => Array
        (
            [2022-01-02] => 200
            [2022-01-04] => 150
        )

    [C] => Array
        (
            [2022-01-03] => 250
            [2022-01-06] => 400
        )

)

代码实现的思路与之前的例子类似,只是在存放结果的数组中,每个数组元素又创建了一个以销售日期为键的数组。这样,可以方便地按照产品名称和销售日期进行分组求和。

总结一下,php 中多维数组的分组求和是一种常见的操作。在实现时,我们可以利用 foreach 循环遍历数组中的各个数组元素,并根据需要创建新的数组元素,从而实现分组求和的功能。当然,对于数据量较大的情况,我们也可以通过使用 php 的 array_reduce() 函数等高级函数来完成相应的操作,提高代码的执行效率和运行速度。

以上是php 多维数组分组求和的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn