第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按一列分組并對 Laravel 集合中的另一列求和

按一列分組并對 Laravel 集合中的另一列求和

PHP
米脂 2022-10-28 15:13:48
我是 PHP 和 Laravel 的新手,我被賦予了這個任務:我有一個如下所示的集合:   Illuminate\Support\Collection Object(    [items:protected] => Array        (            [0] => stdClass Object                (                    [id] => 1                    [cardId] => 100                    [cardQuantity] => 1234                      )            [1] => stdClass Object                (                    [id] => 2                    [cardId] => 100                    [cardQuantity] => 1234                            )            [2] => stdClass Object                (                    [id] => 7                    [cardId] => 200                    [cardQuantity] => 1234                   )            [3] => stdClass Object                        (                    [id] => 8                    [cardId] => 200                    [cardQuantity] => 1234                   )           ))我必須根據(jù)cardId參數(shù)過濾每個元素,添加(+)cardQuantity參數(shù),然后返回新的、不同的數(shù)組,如下所示:  (     [id] => 10     [cardId] => 100     [cardQuantity] => 2468        )  (     [id] => 11     [cardId] => 200     [cardQuantity] => 2468        )一個人怎么能做到這樣的事情?
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻1744條經(jīng)驗 獲得超4個贊

您可以對如何實現(xiàn)這一目標有一個愿景,嘗試如下:


$collection = collect([

    ['id' => 1, 'cardId' => 100, 'cardQuantity' => 1234],

    ['id' => 2, 'cardId' => 100, 'cardQuantity' => 1234],

    ['id' => 7, 'cardId' => 200, 'cardQuantity' => 1234],

    ['id' => 8, 'cardId' => 200, 'cardQuantity' => 1234],

]);


$unique = $collection->unique('cardId'); // returns a collection


$unique->transform(function ($item, $key) use ($collection) {

    $id = $item['cardId'];


    $item['cardQuantity'] = $collection->sum(function ($product) use ($id) {

        if($product['cardId'] == $id){

            return $product['cardQuantity'];

        }

    });

    return $item;

});

return $unique->all();

此代碼返回的結果是轉換后的唯一集合:


{

    "0": {

        "id": 1,

        "cardId": 100,

        "cardQuantity": 2468

    },

    "2": {

        "id": 7,

        "cardId": 200,

        "cardQuantity": 2468

    }

}

基本上,首先我們通過鍵獲取唯一值cardId,然后我們將transform收集unique集合,設置它的新值(唯一值的總和)。你可以玩和測試更多的方法來做到這一點。希望你能發(fā)現(xiàn)這很有用。


查看完整回答
反對 回復 2022-10-28
  • 1 回答
  • 0 關注
  • 185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號