Nic*_*ens 2 php shopping-cart frequency
我正在用PHP制作购物车.要检查用户是否选择了多个产品,我将所有内容都放在一个数组中($ contents).当我输出它时,我得到类似"14,14,14,11,10"的东西.我想要像"3 x 14,1 x 11,1 x 10"这样的东西.最简单的方法是什么?我真的不知道怎么做.
这是我的代码中最重要的部分.
$_SESSION["cart"] = $cart;
if ( $cart ) {
$items = explode(',', $cart);
$contents = array();
$i = 0;
foreach ( $items as $item ) {
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
$i++;
}
$smarty->assign("amount",$i);
echo '<pre>';
print_r($contents);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)
提前致谢.
为什么不建立更强大的购物车实施?
考虑从这样的数据结构开始:
$cart = array(
'lines'=>array(
array('product_id'=>14,'qty'=>2),
array('product_id'=>25,'qty'=>1)
)
);
Run Code Online (Sandbox Code Playgroud)
或类似的.
然后,您可以创建一组在购物车结构上运行的功能:
function addToCart($cart, $product_id, $qty){
foreach($cart['lines'] as $line){
if ($line['product_id'] === $product_id){
$line['qty'] += $qty;
return;
}
}
$cart['lines'][] = array('product_id'=>product_id, 'qty'=>$qty);
return;
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以(也许应该)进一步将这个数据结构和函数组合成一组类.购物车是以面向对象的方式开始发挥作用的好地方.
| 归档时间: |
|
| 查看次数: |
3395 次 |
| 最近记录: |