我在symfony中有一个旧订单系统,该系统具有购物车数组,如下所示:
Array
(
[333] => Array
(
[product] => Product Object (...)
[qty] = 1
[criteria]
)
)
购物车中已经存在的产品ID 333及其特征。
现在,如果说用户将相同的产品添加到购物车中却使用了不同的条件,就会出现问题。
我做了这样的区分:
if((array_key_exists($product->getId(), $products)) AND ($products[$product->getId()]['criteria'] == $criteria))
{
$products[$product->getId()]['qty'] = $products[$product->getId()]['qty'] + $qty;
}else{
// todo == I can't find any solution to this :(
}
上面是什么:
检查购物车中已经存在的产品ID
检查发送的条件是否与购物车中已有的条件匹配
如果为true =>将数量添加到购物车中
您可能已经知道,如果用户添加具有不同条件的 THE SAME 产品,它将最终出现在else中。
简历:如何在同一数组中具有相同ID但值不同的键?
任何想法都会受到赞赏。
谢谢!
答案 0 :(得分:0)
鉴于每组条件都可以拥有自己的数量,则可以实现如下数组:
Array
(
[333] => Array
(
[product] => Product Object (...)
[criterias] => Array
(
[criteria1] => 1
[criteria2] => 16
)
)
)