我正在尝试使用以下代码制作“添加到购物车”功能:
if (empty($_SESSION['cart'])) {
$_SESSION['cart'] = array(
"id" => $_GET['id'],
"size" => $_POST['size'],
"count" => $_POST['count']
);
} else {
array_push($_SESSION['cart'], array(
"id" => $_GET['id'],
"size" => $_POST['size'],
"count" => $_POST['count']
));
}
这是print_r($_SESSION)
:
Array
(
[cart] => Array
(
[id] => 1
[size] => XS
[count] => 1
[0] => Array
(
[id] => 2
[size] => XS
[count] => 1
)
)
)
你可以在数组中看到推送它的方法有什么问题。如果您知道我的意思,我希望新推送的内容与上面的第一个条目处于同一“级别”吗?
答案 0 :(得分:1)
我不确定“与上面的第一个条目”相同“级别”的新推送内容是什么意思,以下情况是不可能的:
$c = array(
'id' => 1,
'size' => 'X5',
'count' => 1,
// YOU CAN'T HAVE DUPLICATE KEYS IN YOUR ARRAY
'id' => 2
);
所以也许你应该在两个条件下都做array_push(对于当前的例子),所以你会得到以下结构:
$c = array(
0 => array(
'id' => 1,
'size' => 'X5',
'count' => 1,
),
1 => array(
'id'=>2,
'size'=>'X3',
...
);
答案 1 :(得分:0)
执行此操作来设置购物车:
$_SESSION['cart'][] = array("id" => $_GET['id'],"size" => $_POST['size'],"count" => $_POST['count']);
然后每个购物车项目都是$_SESSION['cart']