PHP multidimensional array group sum

PHPz
Release: 2023-05-07 11:52:10
Original
674 people have browsed it

With the continuous development of web applications, data processing and analysis are becoming more and more important. The use of multidimensional arrays is a common situation in web development. For multi-dimensional arrays in PHP, group summation is a frequently needed operation. This article will focus on the implementation method of multi-dimensional array group sum in PHP.

First, let's look at an example, assuming we have a multidimensional array containing product name, sales date and sales volume, as shown below:

$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),
);
Copy after login

We want to The sum of sales can be achieved through the following code:

<?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);  // 输出结果

?>
Copy after login

The output of the above code is as follows:

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

The idea of ​​code implementation is to use a foreach loop to traverse each array in the multi-dimensional array Element, get the product name and sales volume of this element. Then, by judging whether the product name already exists in the array storing the results, if not, create an array element with the product name as the key. Finally, add the sales volume to the array element corresponding to the product name. After the traversal is completed, the total sales volume corresponding to each product name can be obtained.

We can also group and sum based on multiple conditions. For example, in the above example, if you want to group and sum by product name and sales date, you can achieve it through the following code:

<?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);  // 输出结果

?>
Copy after login

The output of the above code is as follows:

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
        )

)
Copy after login

What the code implements The idea is similar to the previous example, except that in the array storing the results, each array element creates an array with the sales date as the key. In this way, you can easily group and sum by product name and sales date.

To summarize, group summation of multi-dimensional arrays in PHP is a common operation. When implementing, we can use the foreach loop to traverse each array element in the array and create new array elements as needed to achieve the group summation function. Of course, for situations where the amount of data is large, we can also use advanced functions such as PHP's array_reduce() function to complete the corresponding operations and improve the execution efficiency and running speed of the code.

The above is the detailed content of PHP multidimensional array group sum. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template