2011-07-05 216 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