当前位置:首页 > PHP教程 > php数组 > 列表

PHP中array_merge合并两个数组的程序

发布:smiling 来源: PHP粉丝网  添加日期:2014-03-14 15:40:57 浏览: 评论:0 

合并数据在php中我们利用array_merge()函数来实现,array_merge() 函数把两个或多个数组合并为一个数组. 如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的).如果数组是数字索引的,则键名会以连续方式重新索引.

实例代码如下:

  1. <?php  
  2. echo "rn第一种情况rn";  
  3. $a=array(1,2,3,4,5,6);  
  4. $b=array(7,8,9);  
  5.    
  6. $c=array_merge ($a,$b);  
  7. print_r($c);  
  8. $c=$a+$b;  
  9. print_r($c);  
  10. $c=$b+$a;  
  11. print_r($c);  
  12.    
  13.    
  14. echo "rn第二种情况rn";  
  15. $a=array('a','b','c','d','e','f');  
  16. $b=array('a','x','y');  
  17.    
  18. $c=array_merge ($a,$b);  
  19. print_r($c);  
  20. $c=$a+$b;  
  21. print_r($c);  
  22. $c=$b+$a;  
  23. print_r($c);  
  24.    
  25.    
  26. echo "rn第三种情况rn";  
  27.    
  28. $a=array(  
  29.  1=>'a',  
  30.  2=>'b',  
  31.  3=>'c',  
  32.  4=>'d',  
  33.  5=>'e',  
  34.  6=>'f');  
  35. $b=array(  
  36.  1=>'a',  
  37.  7=>'x',  
  38.  8=>'y');  
  39.    
  40. $c=array_merge ($a,$b);  
  41. print_r($c);  
  42. $c=$a+$b;  
  43. print_r($c);  
  44. $c=$b+$a;  
  45. print_r($c);  
  46. ?> 
  47. 结果如下: 
  48. 第一种情况  
  49. Array  
  50. (  
  51.     [0] => 1  
  52.     [1] => 2  
  53.     [2] => 3  
  54.     [3] => 4  
  55.     [4] => 5  
  56.     [5] => 6  
  57.     [6] => 7  
  58.     [7] => 8  
  59.     [8] => 9  
  60. )  
  61. Array  
  62. (  
  63.     [0] => 1  
  64.     [1] => 2  
  65.     [2] => 3  
  66.     [3] => 4  
  67.     [4] => 5  
  68.     [5] => 6  
  69. )  
  70. Array  
  71. (  
  72.     [0] => 7  
  73.     [1] => 8  
  74.     [2] => 9  
  75.     [3] => 4  
  76.     [4] => 5  
  77.     [5] => 6  
  78. )  
  79.    
  80. 第二种情况  
  81. Array  
  82. (  
  83.     [0] => a  
  84.     [1] => b  
  85.     [2] => c  
  86.     [3] => d  
  87.     [4] => e  
  88.     [5] => f  
  89.     [6] => a  
  90.     [7] => x  
  91.     [8] => y  
  92. )  
  93. Array  
  94. (  
  95.     [0] => a  
  96.     [1] => b  
  97.     [2] => c  
  98.     [3] => d  
  99.     [4] => e  
  100.     [5] => f  
  101. )  
  102. Array  
  103. (  
  104.     [0] => a  
  105.     [1] => x  
  106.     [2] => y  
  107.     [3] => d  
  108.     [4] => e  
  109.     [5] => f  
  110. )  
  111.    
  112. 第三种情况  
  113. Array  
  114. (  
  115.     [0] => a  
  116.     [1] => b  
  117.     [2] => c  
  118.     [3] => d  
  119.     [4] => e  
  120.     [5] => f  
  121.     [6] => a  
  122.     [7] => x  
  123.     [8] => y  
  124. )  
  125. Array  
  126. (  
  127.     [1] => a  
  128.     [2] => b  
  129.     [3] => c  
  130.     [4] => d  
  131.     [5] => e  
  132.     [6] => f  
  133.     [7] => x  
  134.     [8] => y  
  135. )  
  136. Array  
  137. (  
  138.     [1] => a  
  139.     [7] => x  
  140.     [8] => y  
  141.     [2] => b  
  142.     [3] => c  
  143.     [4] => d  
  144.     [5] => e  
  145.     [6] => f  

1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)

2)键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值

注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引

Tags: array_merge

分享到: