我在集合实例中有多个具有相同键但不同值的对象。我需要一种在同一对象中添加数量字段键值的方法。
[
0 => {
+"product_id": 1
+"quantity": "50"
+"price": "25.00"
},
1 => {
+"product_id": 3
+"quantity": "50"
+"price": "75.00"
},
2 => {
+"product_id": 2
+"quantity": "50"
+"price": "50.00"
},
3 => {
+"product_id": 3
+"quantity": "50"
+"price": "75.00"
}
]
生成的实例应将数量添加到相同的项目键中,如下所示。
[
0 => {
+"product_id": 1
+"quantity": "50"
+"price": "25.00"
},
1 => {
+"product_id": 2
+"quantity": "50"
+"price": "50.00"
}
2 => {
+"product_id": 3
+"quantity": "100"
+"price": "75.00"
}
]
我尝试迭代所有对象并添加/编辑对象,如下所示。我不确定这是否是 Laravel 集合中的最佳实践方式。
$newItems = [];
$items->each(function ($item, $key) use ($newItems) {
$existId = array_column($newItems, 'id');
if($existId){
// add quantity to the existing item
} else {
// push item to items array
}
});
翻阅古今