首頁  >  文章  >  php框架  >  laravel sum 不同條件

laravel sum 不同條件

PHPz
PHPz原創
2023-05-26 13:39:09980瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn