我想显示所有会话数据,但对它有一些控制权.问题是,我无法确切地知道会话中存储的是什么,因为它是来自购物车的数据.
例如,这里我的会话中有一个变量:
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'];
}