PHP中数组合并的两种方法

如下关联数组: 


$a = array( 
    'where' => 'uid=1', 
    'order' => 'uid asc', 
); 
$b = array( 
    'where' => 'uid=2', 
    'order' => 'uid desc', 
);

1、使用array_merge函数。如果两个数组存在相同的key,后面的一个会覆盖前面的。


$c = array_merge($a, $b);
var_export($c);  // 结果与原来的$b相同
$d = array_merge($b, $a); 
var_export($d);  // 结果与原来的$a相同

2、"+"操作符,如果两个数组存在相同的key,前面的一个会覆盖后面的。


$c = $a + $b;
var_export($c);  // 结果与原来的$a相同
$d = $b + $a;
var_export($d);  // 结果与原来的$b相同

输出结果:


$a = array(
    1 => '11111',
    2 => '22222'
);
$b = array(
    4 => '33333',
    1 => '44444'
);

1、array_merge函数。效果类似代码foreach每个数组元素,然后将每个元素压入一个新堆栈当中。


$c = array_merge($a, $b);
var_export($c);
$d = array_merge($b, $a);
var_export($d);

输出结果:


array (
  0 => '11111',
  1 => '22222',
  2 => '33333',
  3 => '44444',
)
array (
  0 => '33333',
  1 => '44444',
  2 => '11111',
  3 => '22222',
)

2、"+"操作符。效果类似代码foreach每个数组元素,然后将每个元素压入一个新堆栈当中,如果同样的key已经存在则不处理。


$c = $a + $b;
var_export($c);
$d = $b + $a;
var_export($d);

输出结果:


array (
  1 => '11111',
  2 => '22222',
  4 => '33333',
)
array (
  4 => '33333',
  1 => '44444',
  2 => '22222',
)