php购物车数组帮助
我有一个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
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的代码作为起点,一切似乎都在工作。谢谢