laravel sum 不同條件

laravel是一種流行的php開發框架,它提供了許多方便的函數和語法來提高開發效率。其中,sum函數是在laravel中非常常用的一個函數,可以對一個集合中的值進行求和操作。但是在實際開發中,我們有時需要在不同的條件下進行求和,這時該如何應對呢?本文將介紹laravel如何在不同條件下進行sum求和操作。

一、簡單情況下的sum操作

在Laravel中,我們可以很方便地對一個集合進行sum操作,只需調用sum函數即可。例如,對一個數組進行求和:

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

這個例子中,$sum的值為15,即1+2+3+4+5的和。

類似地,如果我們有一個對象數組,想要對其中的某個屬性進行求和,可以這樣操作:

$sum = collect([     ['name' => 'Alice', 'score' => 80],     ['name' => 'Bob', 'score' => 90],     ['name' => 'Charlie', 'score' => 70] ])->sum('score');

這個例子中,$sum的值為240,即80+90+70的和。

二、條件求和操作

在實際開發中,我們經常需要在不同的條件下進行sum操作,這時就需要用到Laravel中的where函數。where函數可以根據指定的條件過濾集合中的值。例如,我們有一個用戶數組,每個用戶都有姓名和年齡兩個屬性,想要計算所有年齡大于18歲的用戶年齡之和,可以這樣操作:

$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的和。

類似地,如果我們有一個訂單數組,每個訂單都有一個狀態屬性,想要計算所有已完成訂單的金額之和,可以這樣操作:

$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歲的用戶年齡之和,可以這樣操作:

$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日之后的訂單金額之和,可以這樣操作:

$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函數非常方便實用,可以幫助我們快速地完成條件求和操作。在實際開發中,我們可以根據不同的需求靈活運用這些函數,提高開發效率。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享