2011-03-06 185 views
1

這與我以前的帖子有關。 how to create a collection of multi dimensional arrays and not overwrite origional values when new ones are pushed將多維數組合併到另一個多維數組中

我在想我的問題與我如何創建數組有關。我想要做的是使一個數組,看起來像這樣

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

) 

弄成這個樣子

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


[20] => Array 
      (
       [0] => 29 
       [1] => 36 
      ) 


[25] => Array 
      (
       [0] => 29 
       [1] => 36 
      ) 

    ) 

的10,20和25是產品id其中內這些數字是在該頁面上選擇的選擇(在上面給出的鏈接中)。所以每個產品都會選擇自己的集合。

當我使用array_push而不是做我希望它做第一個數組的第一個集合,如第一個示例中的keep reseting。所以如果我在說傳單上做我的選擇並添加到購物車,然後我去名片和做我的選擇,並添加到購物車數組重置,它就像第一個例子。無論我嘗試我不能讓它合併下面的集合,就像我有第二個例子。我已經嘗試array_merge(),array_push但那些不真的工作。

+0

如果您在嘗試執行插入操作之前要對數組進行var_dump操作,會顯示什麼內容?我有一種感覺,你提交了多個頁面,但並不是在頁面之間傳遞數組(例如,通過將數組設置爲會話)。 – dmcnelis

回答

1

解決方案: -

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

$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 
     ) 
) 

希望這會有所幫助。