【发布时间】:2014-07-17 03:22:47
【问题描述】:
我有一个存储在 Session 中的数组结构
edit:item_id 的数量不确定。一笔交易可能有 1-3 件商品,下一笔交易可能有 2-20 件商品。
"items": [{
"item_id": "1",
"item_quantity": "151"
}, {
"item_id": "2",
"item_quantity": "54"
}, {
"item_id": "2",
"item_quantity": "23"
}, {
"item_id": "3",
"item_quantity": "3"
}, {
"item_id": "3",
"item_quantity": "3"
}]
我想要实现的是将所有具有相同item_id 的item_quantity 加起来
"items": [{
"item_id": "1",
"item_quantity": "151"
}, {
"item_id": "2",
"item_quantity": "77"
}, {
"item_id": "3",
"item_quantity": "6"
}]
这是我迄今为止尝试过的,但我没有得到想要的结果
控制器
public function Save() {
if (Input::has('addItem')) {
if (Session::has('items')) {
Session::push('items', [
'item_id' => Input::get('item_id'),
'item_quantity' => Input::get('item_quantity')
]);
$array = Session::get('items');
foreach($array as $key => $value) {
foreach($value as $item_id => $item_quantity) {
$total = array();
$id = $value['item_id'];
$quantity = $value['item_quantity'];
if (!isset($total[$id])) {
$total[$id] = 0;
}
$total[$id] += $quantity;
echo $total[$id];
}
} else {
Session::put('items', [
0 => [
'item_id' => Input::get('item_id'),
'item_quantity' => Input::get('item_quantity')
]
]);
}
$data = Session::all();
//return $data;
$item = Item::lists('item_name', 'id');
return View::make('test')->with('data', $data)->with('items', $item);
}
【问题讨论】:
标签: php arrays session laravel