2011-03-06 49 views
1

這裏不會覆蓋原始值是我的地盤 http://69.231.195.173:8888/iadprint/products?product=flyers如何創建多維數組的集合,當新的推

當用戶選擇,涉及到的傳單產品和印刷機添加到購物車數的選擇

。這是執行的代碼。

if(isset($_POST['btnAddToCart']) && isset($_GET['product'])) 
    { 
     $product_id = $action->getProductID($_GET['product']); 

     $attribute[$product_id] = array(); 


     foreach ($_POST as $field=>$hash) 
     { 
      $hash = $security->clean_numeric($hash); 

      if($field != "btnAddToCart" && $field != 'price' && !empty($hash)) 
      { 
       array_push($attribute[$product_id], $hash); 

      } 
     } 

     $_SESSION['iadprint_cart'] = $attribute; 
} 

其被形成在陣列看起來像這樣

Array 
(
    [10] => Array 
     (
      [0] => 30 
      [1] => 36 
     ) 

) 

該主陣列10是指傳單產品ID名稱內。裏面的30和36是選擇的ID。

如果您選擇名片並做出選擇並添加到購物車中,那麼您可能會遇到這樣的問題,例如將圖片放入陣列()中的新圖片。數據被覆蓋。我使用array_push,它應該工作,但它不是。我究竟做錯了什麼?

如果你需要更多的解釋讓我知道

感謝

有誰知道?我沒有得到迴應。請幫助我,我真的被卡住了幾天了。

+0

+1良好表現 – Wazzzy 2011-03-06 07:37:15

+0

我認爲這個問題是在這裏$屬性[$的product_id =陣列();重置陣列並添加新數據。但不知道我會如何寫它。 – 2011-03-06 08:44:16

+0

不是這不是問題。此處還有很多令人困惑的部分。當數據被覆蓋? – Shoe 2011-03-06 11:18:58

回答

0

解決方案: -

如果你想從第二個數組的數組元素添加到第一陣列,而不是覆蓋從第一數組中的元素而不是重新索引,使用+陣列union運算

$a = array(10 => array(25,26)); 
$b = array(22 => array(45,66)); 
$c = $a + $b; 
print_r($c); 

輸出: -

Array 
(
    [10] => Array 
     (
      [0] => 25 
      [1] => 26 
     ) 

    [22] => Array 
     (
      [0] => 45 
      [1] => 66 
     ) 
) 

把鑰匙是在這種情況下保存。

從 您發佈有關這一問題的其他問題相同的答案: - merging a multi-dimensional array into another multi-dimensional array

0

我認爲這將是有益的in_array().

+0

以及事情是我不能推入一個新的數組,所以說我想推動[11] =>數組([0] => 11,[1] => 12)它應該工作,但它沒有。那裏不存在11個。所以如果我要添加我提到的,即使它不存在,它也會寫。 – 2011-03-06 07:40:32

+0

您可以使用此功能,但它不是正確的做法。 $ result = array_unique($ hash); – Wazzzy 2011-03-06 07:45:06

+0

對不起,我沒有得到你的話。我會推動新的價值觀。我將使用in_array()一旦我有能力推入新的數組,然後我會檢查並在添加重複之前看到 – 2011-03-06 07:47:04