PHP中数组合并的两种方法及区别介绍

  PHP数组合并两种方法及区别

  如果是关联数组,如下:

  

复制代码 代码如下:

  $a = array(

  'where' => 'uid=1',

  'order' => 'uid',

  );

  $b = array(

  'where' => 'uid=2',

  'order' => 'uid desc',

  );

  1. array_merge,如果两个数组存在相同的key,后面的一个会覆盖前面的

  

复制代码 代码如下:

  <?php

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

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

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

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

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

  

复制代码 代码如下:

  <?php

  $c = $a + $b;

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

  $d = $b + $a;

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

  如果是数字索引数组,如下:

  

复制代码 代码如下:

  $a = array(

  1 => '1111111',

  2 => '222222222'

  );

  $b = array(

  4 => '33333333333',

  1 => '444444444'

  );

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

  

复制代码 代码如下:

  <?php

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

  var_export($c);

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

  var_export($d);

  输出:

  array (

  0 => '1111111',

  1 => '222222222',

  2 => '33333333333',

  3 => '444444444',

  )

  array (

  0 => '33333333333',

  1 => '444444444',

  2 => '1111111',

  3 => '222222222',

  )

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

  

复制代码 代码如下:

  <?php

  $c = $a + $b;

  var_export($c);

  $d = $b + $a;

  var_export($d);

  输出:

  array (

  1 => '1111111',

  2 => '222222222',

  4 => '33333333333',

  )

  array (

  4 => '33333333333',

  1 => '444444444',

  2 => '222222222',

  )