我正在写一个购物车并将我的数据存储在$ _SESSION数组中,但是想要计算总数 . 在它下面我认为可以用来做这个的代码,但它返回'1'而不是总共!
$ total = array($ _ SESSION ['qty'],$ _ SESSION ['pr']);
/ *我会给你更多的代码...感谢您的帮助!这是我的php购物车的代码:
<?php
function item_list(){if(isset($ _ SESSION ['qty'])){$ total = array($ _ SESSION ['qty'],$ _ SESSION ['pr']);
foreach($_SESSION['qty'] as $key => $value)
{?>
<tr>
<td align="center"><?php echo $_SESSION['item'][$key]; ?></td>
<td align="center"><?php echo $value; ?></td>
<td align="center"><?php echo $_SESSION['pr'][$key]; ?></td>
<td align="center"><?php echo array_product($total); ?>
</tr><?php
}
}
} session_start(); if(isset($ _ POST ['clear'])&&($ _POST ['clear'] =='clear')){session_destroy();未设置($ _ SESSION [ '数量']);未设置($ _ SESSION [ '项目']);未设置($ _ SESSION [ 'PR']);未设置($ _ POST [ '数量']);未设置($ _ POST [ '项']);未设置($ _ POST [ 'PR']); } if(!isset($ _ SESSION ['qty']))$ _SESSION ['qty'] = array(); if(!isset($ _ SESSION ['item']))$ _SESSION ['item'] = array(); if(!isset($ _ SESSION ['pr']))$ _SESSION ['pr'] = array(); if(isset($ _ POST ['qty'])){
foreach($_POST['qty'] as $value)
{
if(!$value == '') array_push($_SESSION['qty'], filter_var($value,
FILTER_SANITIZE_SPECIAL_CHARS)); } foreach($ _ POST ['item'] as $ key => $ value){if(!$ _ POST ['qty'] [$ key] =='')array_push($ _ SESSION ['item'],filter_var( $ value,FILTER_SANITIZE_SPECIAL_CHARS)); } foreach($ _ POST ['pr'] as $ key => $ value){if(!$ _ POST ['qty'] [$ key] =='')array_push($ _ SESSION ['pr'],filter_var( $ value,FILTER_SANITIZE_SPECIAL_CHARS)); }>?>
3 回答
这是构建购物车的一种奇怪的方式,但这里是如何使用该结构:
如果您想获得购物车的所有数量和成本:
我会推荐一个更好的结构,例如:
根据您的购物车阵列,它不能容纳多个产品,您必须使用这样的多维数组
那么你可以像这样写你的代码
你应该自己创建一个
Card
类,它能够从$_SESSION
超全局导入/导出数据(或者如果你为了测试而模拟其他数组,使用_621303进行测试可能很难),它可以轻松处理你的数据结构 . 计算总数:这将允许您随着时间的推移更轻松地更改代码 .