无法显示3维PHP数组的内容

时间:2014-12-29 22:55:25

标签: php arrays session

我在$ _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 
       ) 
   ) 
)

2 个答案:

答案 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是一个数组,所以我必须这样访问它。