php – 显示会话变量

我想显示所有会话数据,但对它有一些控制权.问题是,我无法确切地知道会话中存储的是什么,因为它是来自购物车的数据.

例如,这里我的会话中有一个变量:

item_name_1 : Productname
item_quantity_1: 5

每个产品都有一些带数字的变量.如果购物车中有2种不同的产品,那么第二种产品就是

item_number_2等等.

还有一个名为itemcount的变量,用于说明购物车中有多少种不同的产品.

我怎么能告诉php,所有以item_name_开头的变量应该显示在所有其他变量之后的各个div中,例如总价?

这是我目前用来打印会话数据的内容:

<?php
foreach ($_SESSION as $key=>$val)
echo $key. ": ".$val. "<br>";
?>

这就是我所看到的:

currency: EUR
shipping: 10
grandTotal: 70.5
itemCount: 4
item_name_1: Tomato Suppe
item_quantity_1: 1
item_price_1: 3.5
item_options_1:
item_name_2: Lentils Suppe
item_quantity_2: 14
item_price_2: 3.5
item_options_2:
item_name_3: Chicken Suppe
item_quantity_3: 1
item_price_3: 4.5
item_options_3:
item_name_4: Green Leaves Suppe
item_quantity_4: 1
item_price_4: 3.5
item_options_4:

显然我想让它更容易阅读.

我可以使用echo $_SESSION [‘shipping’]运费将它放在我想要的任何地方,但我该如何处理产品?

说我希望每个产品都在div和/ div中显示?

抱歉没有问题.

谢谢

最佳答案 如果您无法控制数据保存到会话的方式,您可以编写一个简单的帮助函数,以更实用的格式检索产品数据.

function getSessionProducts()
{
  $itemCount = $_SESSION['itemCount'];
  $products = array(); 
  for($i = 1; $i <= $itemCount; $i++) {
     $products[] = array(
       'name' => $_SESSION['item_name_'.$i],
       'quantity' => $_SESSION['item_quantity_'.$i],
       'price' => $_SESSION['item_price_'.$i],
       'options' => $_SESSION['item_options_'.$i]
    );
  }
  return $products;
}

您当然应该添加适当的验证来检查$_SESSION数组中的数据是否在访问之前是否已设置.

使用方法如下

$products = getSessionProducts(); 
foreach($products as $product) { 
    echo $product['name']; 
} 
点赞