我在$ _SESSION数组中有一个PHP购物车,我试图显示它的内容
这是我的相关代码(我的页面开头有一个session_start
):
if (isset($_GET['item']))
{
$item = $_GET['item'];
if(!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
}
if (isset($_SESSION['cart'][$item]))
{
$_SESSION['cart'][$item]['quantity']++;
echo "<h3 class=changement> Additional Item ".$item." has been added to cart.</h3>";
}
else
{
$_SESSION ['cart'][$item]['quantity']= 1;
echo "<h3 class=changement> Item ".$item." has been added to cart.</h3>";
}
foreach($_SESSION['cart'][$item] as $myItem => $myQuantity)
{
echo "<br> item: ".$myItem." quantity: ".$myQuantity."<br>";
}
显示购物车内容的foreach不显示商品名称
$myItem
的内容始终是:数量。像这样:
item: quantity quantity: 10
我希望foreach能够打印出来:
item: Banana quantity: 4
item: Apple quantity: 6
显然,我对多维数组有所了解 有人可以解决这个问题。
注意:我知道不是使用此行:$_SESSION['cart'][$item]['quantity']++;
我只能使用$_SESSION['cart'][$item]++;
并将项目名称作为整数变量来递增,但我正在努力理解
多维数组如何与php一起工作。
Array (
[connectee] => rush,
[start] => 1419894221,
[expire] => 1419894281,
[cart] => Array (
[troutster] => Array (
[quantity] => 2
)
[funny_man] => Array (
[quantity] => 1
)
[Gareth] => Array (
[quantity] => 1
)
)
)
答案 0 :(得分:2)
foreach($_SESSION['cart'] as $itemName => $item) {
echo "<br> item: ".$myItem." quantity: ".$item["quantity"]."<br>";
}
因为$ item是一个对象,$ _SESSION [&#39; cart&#39;]是你要显示的数组
答案 1 :(得分:0)
这有效:
foreach($_SESSION['cart'] as $myItem => $myQuantity)
{
foreach($myQuantity as $value)
{
echo "<br> item: ".$myItem." quantity: ".$value."<br>";
}
}
$myQuantity
是一个数组,所以我必须这样访问它。