laravel sum 不同条件

来源:undefined 2025-01-01 05:09:23 1043

laravel是一种流行的php开发框架,它提供了许多方便的函数和语法来提高开发效率。其中,sum函数是在laravel中非常常用的一个函数,可以对一个集合中的值进行求和操作。但是在实际开发中,我们有时需要在不同的条件下进行求和,这时该如何应对呢?本文将介绍laravel如何在不同条件下进行sum求和操作。

一、简单情况下的sum操作

在Laravel中,我们可以很方便地对一个集合进行sum操作,只需调用sum函数即可。例如,对一个数组进行求和:

1

$sum = collect([1, 2, 3, 4, 5])->sum();

登录后复制

这个例子中,$sum的值为15,即1+2+3+4+5的和。

类似地,如果我们有一个对象数组,想要对其中的某个属性进行求和,可以这样操作:

1

2

3

4

5

$sum = collect([

[name => Alice, score => 80],

[name => Bob, score => 90],

[name => Charlie, score => 70]

])->sum(score);

登录后复制

二、条件求和操作

在实际开发中,我们经常需要在不同的条件下进行sum操作,这时就需要用到Laravel中的where函数。where函数可以根据指定的条件过滤集合中的值。例如,我们有一个用户数组,每个用户都有姓名和年龄两个属性,想要计算所有年龄大于18岁的用户年龄之和,可以这样操作:

1

2

3

4

5

6

7

$users = collect([

[name => Alice, age => 20],

[name => Bob, age => 16],

[name => Charlie, age => 25]

]);

$sum = $user->where(age, >, 18)->sum(age);

登录后复制

这个例子中,$sum的值为45,即20+25的和。

类似地,如果我们有一个订单数组,每个订单都有一个状态属性,想要计算所有已完成订单的金额之和,可以这样操作:

1

2

3

4

5

6

7

8

$orders = collect([

[id => 1, status => created, amount => 10],

[id => 2, status => completed, amount => 20],

[id => 3, status => cancelled, amount => 30],

[id => 4, status => completed, amount => 40]

]);

$sum = $orders->where(status, completed)->sum(amount);

登录后复制

这个例子中,$sum的值为60,即20+40的和。

三、根据多个条件求和

有时候,我们需要根据多个条件进行sum操作。这时可以使用Laravel中的where函数的链式调用来实现。例如,我们有一个用户数组,每个用户都有姓名、年龄、地区三个属性,想要计算所有地区为北京、年龄大于18岁的用户年龄之和,可以这样操作:

1

2

3

4

5

6

7

$users = collect([

[name => Alice, age => 20, area => Beijing],

[name => Bob, age => 16, area => Shanghai],

[name => Charlie, age => 25, area => Beijing]

]);

$sum = $user->where(age, >, 18)->where(area, Beijing)->sum(age);

登录后复制

这个例子中,$sum的值为20,即Alice的年龄。

类似地,如果我们有一个订单数组,每个订单都有一个状态属性和一个日期属性,想要计算所有已完成订单中2019年1月1日之后的订单金额之和,可以这样操作:

1

2

3

4

5

6

7

8

$orders = collect([

[id => 1, status => created, amount => 10, date => 2019-01-01],

[id => 2, status => completed, amount => 20, date => 2019-01-05],

[id => 3, status => cancelled, amount => 30, date => 2018-12-31],

[id => 4, status => completed, amount => 40, date => 2019-02-01]

]);

$sum = $orders->where(status, completed)->where(date, >, 2019-01-01)->sum(amount);

登录后复制

这个例子中,$sum的值为20,即第二个订单的金额。

综上所述,Laravel的sum函数和where函数非常方便实用,可以帮助我们快速地完成条件求和操作。在实际开发中,我们可以根据不同的需求灵活运用这些函数,提高开发效率。

以上就是laravel sum 不同条件的详细内容,更多请关注php中文网其它相关文章!

最新文章