php 多维数组分组求和

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

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

1

2

3

4

5

6

7

8

$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),

);

登录后复制

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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

?>

登录后复制

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

1

2

3

4

5

6

Array

(

[A] => 400

[B] => 350

[C] => 650

)

登录后复制

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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

?>

登录后复制

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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中文网其它相关文章!

TG交流群(点击进入)----付费帮助搭建---修复---二开,以及发布求资源.
QQ交流群 922260178
© 版权声明
THE END
喜欢就支持一下吧
点赞2.8W+ 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容