购物车建议

时间:2011-10-18 19:36:49

标签: php

我有一个购物车,项目被添加到会话中,如下所示。

array_push($_SESSION['cart'],sanitize($id));

对于没有子选项的单个选项,这很好。但是如果你有这样的订单,Espresso加牛奶和英式松饼就会有点像这样。

 $_SESSION['0'] is 'Espresso'
 $_SESSION['1'] is 'Milk'
 $_SESSION['2'] is 'English Muffin'

或熟食菜单

 $_SESSION['0'] is 'sandwich'
 $_SESSION['1'] is 'ham'
 $_SESSION['2'] is 'cheese'
 $_SESSION['3'] is 'tomato'
 $_SESSION['4'] is 'Coke'

然后用户想要删除sandwich并保留coke如何删除所有三明治及其选项sandwichham,{{1 }},cheese当用户选择删除三明治时?请记住,三明治的选择可能会有所不同。

1 个答案:

答案 0 :(得分:1)

我认为您需要重新考虑如何将商品添加到购物车中。我认为更有意义的是创建一个数组并将该数组添加到购物车。如果您有一个包含多个选项的项目,则可以将其创建为:

$espresso = array("milk");
$sandwich = array("ham","cheese","tomato");

$cart = array("drink"=>$espresso, "sandwich"=>$sandwich);
$_SESSION['cart'] = $cart;

然后,如果索明想要取出饮料,他们可以这样做:

unset($_SESSION['cart']['drink']);

或者,如果您只想删除奶酪:

unset($_SESSION['cart']['sandwich'][2]);

最有意义的是拥有可以添加和删除属性的对象,然后使用对象方法操作会话中的内容。