吉吉于

php中数组array_merge和运算符加号(+)的区别

array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
数字键名将会被重新编号!保留原有数组并只想新的数组附加到后面,用 + 运算符

 

01
02 /**
03   *array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。
04   *返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
05   *然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
06   *如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
07   */
08
09     $array1 = array(“color” => “red”, 2, 4);
10     $array2 = array(“a”, “b”, “color” => “green”, “shape” => “trapezoid”, 4);
11     $result = array_merge($array1, $array2);
12     print_r($result);
13     /*
14     [color] => green
15     [0] => 2
16     [1] => 4
17     [2] => a
18     [3] => b
19     [shape] => trapezoid
20     [4] => 4
21     */
22     $array1 = array(“array1″);
23     $array2 = array( => “array2″);
24     $result = $array1 + $array2;
25 var_dump($result);//0=>array1     数字key不替换
26
27     $array1 = array(“array1″);
28     $array2 = array( => “array2″);
29     $result = array_merge($array1,$array2);//merge key重新编号
30 var_dump($result);//0=>array1,1=>array2
31
32
33     $array1 = array(’1′=>‘array1′);
34     $array2 = array(’1′ => “array2″);
35     $result = $array1 + $array2;
36 var_dump($result);//1=>array1 也被当作数字
37
38     $array1 = array(’1′=>‘array1′);
39     $array2 = array(’1′ => “array2″);
40     $result = array_merge($array1,$array2);
41 var_dump($result);//0=>array1  1=>array2
42
43     $array1 = array(’2′=>‘array1′);
44     $array2 = array(’3′ => “array2″);
45     $array3 = array(’3′ => “array3″);
46     $result = array_merge($array1,$array2,$array3);
47 var_dump($result);//0=>array1  1=>array2  2=>array2
48
49     $array1 = array(’2′=>‘array1′);
50     $array2 = array(’3′ => “array2″);
51     $array3 = array(“3″ => “array3″);
52     $result = ($array1+$array2+$array3);
53 var_dump($result);//2=>array1  3=>array2
54
55     $array1 = array(‘str1′=>‘array1′);
56     $array2 = array(‘str1′ => “array2″);
57     $result = array_merge($array1,$array2);
58 var_dump($result);//str1=>array2   字符串key替换
59
60 ?>

转自:http://www.tanglei.name/difference-between-array_merge-and-plus

转载请注明:于哲的博客 » php中数组array_merge和运算符加号(+)的区别