2011-07-05 213 views
1

我有一个PHP数组:PHP购物车阵帮助

Array ([1] => Array 
    ([qty] => 3 
     [material] => 2 
     [size] => 4 
    )) 

的第一个值1是产品ID。

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

另外还有更好的做事方式吗?

感谢

+0

你为什么要通过产品ID密钥,如果可以有多个条目每个产品ID?只需将产品ID设置为诸如qty/material/size之类的属性并在更新数量时搜索数组。这不像购物车阵列将变得如此之大,以至于线性搜索速度会变慢。 –

+0

如果1是产品ID,那么将不可能在不覆盖现有尺寸和材料的情况下添加具有相同产品ID的另一个产品ID。那是故意的吗? –

回答

0

假设数组= $ foo的,其余都存储在:,$ ID,$材料,$大小

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; 
} 
+0

大家好, 感谢您的回应,Dan和Francois提出了非常好的观点,我修改了数组的结构,并使用了Dagon的代码作为起点,并且似乎都在工作。 谢谢 – Dino