2011-03-06 155 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 
     ) 
) 

希望这会有所帮助。