php中数组array_merge和运算符加号(+)的区别
03 Mar 2012array_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 ?>
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和运算符加号(+)的区别