首页 > 解决方案 > 购物车数组 $_SESSION['cart'] 未正确打印购物车项目

问题描述

我正在通过 $_SESSION 在电子商务网站上执行购物车功能。我在 $_SESSION['cart'] 数组中的每次点击都成功添加了购物车项目。但无法正确打印。我制作了一个关联数组,这是一个正确处理的问题。我不知道如何正确显示购物车物品,尝试了合并数组 += $item 或任何东西,但没有任何效果。

这是我的代码..

//add  item to cart 
<?php 

 session_start();
 
 if(!isset($_SESSION['cart'])){
  $_SESSION['cart'] = array();
 }

 $item = array("pid"=>$_POST['pid'], "name"=> "bloom flowers");

 array_push($_SESSION['cart'],$item);
 echo "Done!";
 ?>

//displaying cart items

<?php include 'navbar.php';
session_start();
if(isset($_SESSION['cart'])){
foreach ($_SESSION['cart'] as $value){
     echo '<h5>'.$value.'</h5>';
     }
 }

// print_r($_SESSION['cart']);
 ?>

标签: phparrayssessioncartshopping-cart

解决方案


对于您的情况,如果您想显示 say "name" 的数据,请使用 $value['name']

因此,更改块

foreach ($_SESSION['cart'] as $value){
     echo '<h5>'.$value.'</h5>';
     }

foreach ($_SESSION['cart'] as $value){
     echo '<h5>'.$value['name'].'</h5>';
     }

如果需要,对 pid 执行相同的操作。

因此,整个代码(完全工作)是:

<?php 

session_start();
 
 if(!isset($_SESSION['cart'])){
 $_SESSION['cart'] = array();
 }

 $item = array("pid"=>'1', "name"=> "Mary");

 array_push($_SESSION['cart'],$item);

foreach ($_SESSION['cart'] as $value){
     echo '<h5>'.$value['name'].'</h5>';
     }

 ?>

推荐阅读