我在$_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
我想让福拉奇打印:
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
)
)
)
foreach($_SESSION['cart'] as $itemName => $item) {
echo "<br> item: ".$myItem." quantity: ".$item["quantity"]."<br>";
}
因为$item是一个对象,而 $_SESSION['cart'] 是你想要显示的数组
这奏效了:
foreach($_SESSION['cart'] as $myItem => $myQuantity)
{
foreach($myQuantity as $value)
{
echo "<br> item: ".$myItem." quantity: ".$value."<br>";
}
}
$myQuantity
是一个数组,所以我必须这样访问它。