1 回答

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)這很有用。
- 1 回答
- 0 關注
- 185 瀏覽
添加回答
舉報