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', )
|