我有一个SESSION数组 $ _ SESSION ['cart']
例如它的值为
Array
(
[0] =>
[1] => Array
(
[item_id] => 1420
[item_qty] => 1
)
[2] => Array
(
[item_id] => 1522
[item_qty] => 1
)
)
现在假设我有 item_id = 1420
现在我想为 item_id = 1420 增加 item_qty ,同时我必须在该SESSION数组中设置它。
我尝试了什么:
foreach($_SESSION['Cartquantity'] as $key => $d)
{
if(isset($d)) {
if($d['item_id'] == $_GET['item_id'])
{
$d['item_quntity'] = $d['item_quantity']+1;
}
}
else{
}
}
这不起作用?
答案 0 :(得分:3)
您正在重复$_SESSION['Cartquantity']
但已告诉我们该数组存储在$_SESSION['cart']
。
另外,这个:
$d['tem_quntity'] = $d['item_quantity']+1;
应该是:
$d['item_qty'] = $d['item_qty']+1;
最后,您需要通过在$d
条件中为&符号(&
)添加前缀来foreach
作为参考。
foreach($_SESSION['cart'] as $key => &$d)
{
if($d) {
if($d['item_id'] == $_GET['item_id'])
{
$d['item_qty'] = $d['item_qty']+1;
}
}
else{
}
}
答案 1 :(得分:1)
使用reference& $ d
foreach($_SESSION['Cartquantity'] as $key => &$d)
{
if($d) {
if($d['item_id'] == $_GET['item_id'])
{
$d['tem_quntity'] = $d['item_quantity']+1;
}
}
else{
}
}
或
foreach($_SESSION['Cartquantity'] as $key => $d)
{
if($d) {
if($d['item_id'] == $_GET['item_id'])
{
$_SESSION['Cartquantity'][$key]['item_quntity'] = $d['item_quantity']+1;
}
}
else{
}
}
答案 2 :(得分:0)
尝试检查!empty($array)
if(!empty($d))
因为它是数组所以你需要检查它的内部是否有任何元素。
如果您想知道数组是否已定义,请使用isset($d)
。
如果您想知道是否定义了特定密钥,请使用isset($d['item_id'])
。
如果您想知道数组是否为空且具有键值对,请使用!empty($d)
。
答案 3 :(得分:0)
使用它:
foreach($_SESSION['cart'] as $key => $d)
{
if($d) {
if($d['item_id'] == $_GET['item_id'])
{
$d['tem_quntity'] = $d['item_qty']+1;
}
}
else{
}
}
答案 4 :(得分:0)
更改此
$d['tem_quntity'] = $d['item_quantity']+1;
到
$d['item_qty'] = $d['item_qty']+1;
答案 5 :(得分:0)
你可以通过
打电话foreach ($_SESSION['Cartquantity'] as $value))
{
if(isset($value))
{
if($value['item_id'] == $_GET['item_id'])
{
$value['item_quntity'] = $value['item_quantity']+1;
}
}
else
{
}
}
答案 6 :(得分:0)
foreach($_SESSION['cart'] as $key=>$val)
{
foreach($val as $subK)
{
if($_GET["item_id"]==$subk["item_id"])
{
$_SESSION['cart'][$key]["item_id"]=$_SESSION['cart'][$key]["item_quantity"]+1;
}
}
}