首页 / PHP / php-在会话中添加相同数组键的数组值
php-在会话中添加相同数组键的数组值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-在会话中添加相同数组键的数组值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2465字,纯文字阅读大概需要4分钟。
内容图文
![php-在会话中添加相同数组键的数组值](/upload/InfoBanner/zyjiaocheng/693/9213b6a3d06b4bdea2b5a68fa506a6fa.jpg)
我有一个存储在Session中的数组结构
编辑: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);
}
解决方法:
您走在正确的轨道上.查看代码中的注释.
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');
$total = array(); //move outside foreach loop because we don't want to reset it
foreach ($array as $key => $value) {
$id = $value['item_id'];
$quantity = $value['item_quantity'];
if (!isset($total[$id])) {
$total[$id] = 0;
}
$total[$id] += $quantity;
echo $total[$id];
}
//now convert our associative array from array(actual_item_id => actual_item_quantity,....)
//into array(array('item_id' => actual_item_id, 'item_quantity' => actual_item_quantity), ....)
$items = array();
foreach($total as $item_id => $item_quantity) {
$items[] = array(
'item_id' => $item_id,
'item_quantity' => $item_quantity
);
}
Session::put('items', $items);
} 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-在会话中添加相同数组键的数组值全部内容,希望文章能够帮你解决php-在会话中添加相同数组键的数组值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。