数组中的唯一键

时间:2018-06-28 15:05:07

标签: php arrays

我在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但值不同的键?

任何想法都会受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:0)

鉴于每组条件都可以拥有自己的数量,则可以实现如下数组:

Array
(
    [333] => Array
        (
            [product] => Product Object (...)
            [criterias] => Array
                (
                    [criteria1] => 1
                    [criteria2] => 16
                )
        )
)