php中array_merge与array相加的区别

来源:互联网 发布:listview刷新数据 编辑:程序博客网 时间:2024/05/22 17:37

一.array_merge

1. 数组键值为字串的情况(hash数组)

键名相同的情况下,后出现的元素覆盖先出现的。

示例

<?php$ary1 = array('name'=>'test', 'age'=>18);$ary2 = array('age'=>3, 'sex' => 'm');$result = array_merge($ary1, $ary2);var_dump($result);

输出

array(3) {  'name' =>  string(4) "test"  'age' =>  int(3)  'sex' =>  string(1) "m"}

2. 数组键值为数字的情况

保留所有元素,以原有顺序将两数据合并成新数组。数组的键会从0开始重新命名。

<?php$ary1 = array(2=>'a', 1=>'b', 4=>'c');$ary2 = array('b', 'c', 'd', 'e');$result = array_merge($ary1, $ary2);var_dump($result);

输出

array(7) {  [0] =>  string(1) "a"  [1] =>  string(1) "b"  [2] =>  string(1) "c"  [3] =>  string(1) "b"  [4] =>  string(1) "c"  [5] =>  string(1) "d"  [6] =>  string(1) "e"}

二. array相加

永远保留最先出现的键值

示例1

<?php$ary1 = array('a', 'b', 4=>'c');$ary2 = array('b', 'c', 'd', 'e');$result = $ary1 + $ary2;var_dump($result);

输出

array(5) {  [0] =>  string(1) "a"  [1] =>  string(1) "b"  [4] =>  string(1) "c"  [2] =>  string(1) "d"  [3] =>  string(1) "e"}

示例2

<?php$ary1 = array('name'=>'test', 'age'=>18);$ary2 = array('name'=>'qq', 'age'=>3, 'sex'=>'m');$result = $ary1 + $ary2;var_dump($result);

输出

array(3) {  'name' =>  string(4) "test"  'age' =>  int(18)  'sex' =>  string(1) "m"}