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函數非常方便實用,可以幫助我們快速地完成條件求和操作。在實際開發中,我們可以根據不同的需求靈活運用這些函數,提高開發效率。
以上是laravel sum 不同條件的詳細內容。更多資訊請關注PHP中文網其他相關文章!