php购物车数组帮助

php购物车数组帮助,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个php数组: Array ( [1] => Array ( [qty] => 3 [material] => 2 [size] => 4 ) ) 第一个值1是productid 我希望能够添加数量(现有值)的基础上,条件是选择相同的材料和尺寸。如果材质或大小不同,则会创建一个新阵列,并将其添加到现有阵列中 或者,有没有更好的做事方式 谢谢假设数组=$foo,其他存储在:,$id,$material,$size中 i

我有一个php数组:

Array ( [1] => Array 
    ( [qty] => 3
      [material] => 2 
      [size] => 4 
     ) )
第一个值1是productid

我希望能够添加数量(现有值)的基础上,条件是选择相同的材料和尺寸。如果材质或大小不同,则会创建一个新阵列,并将其添加到现有阵列中

或者,有没有更好的做事方式


谢谢

假设数组=$foo,其他存储在:,$id,$material,$size中

if(is_array($foo[$id]) && $foo[$id]'material']==$material && $foo[$id]['size']==$size){
$foo[$id]['qty']=$foo[$id]['qty']+1;
//or it $qty could be other than 1
$foo[$id]['qty']+=$qty;
}

如果每个产品ID可以有多个条目,为什么要按产品ID键入?更新数量时,只需将产品ID设置为qty/material/size等属性之一,并搜索数组即可。这不像购物车阵列会增长得太大以至于线性搜索会很慢。如果1是产品id,那么在不覆盖现有大小和材质的情况下,不可能添加另一个具有相同产品id的阵列。这是故意的吗?大家好,谢谢你们的回答,Dan和Francois提出了很好的观点,我已经修改了数组的结构,并使用了Dagon的代码作为起点,一切似乎都在工作。谢谢