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

PHP array_merge合并拆分两个数组

发布:smiling 来源: PHP粉丝网  添加日期:2014-03-19 17:49:12 浏览: 评论:0 

对数组的array_merge函数和+运算符比较迷惑,写了个小程序比较下发现了他们的不同. 特别是+运算符,他的意思是,将右边的数组单元(去重复)追加到左边数组的后面.

实例代码如下:

  1. <?php 
  2. $arr1=array("a","b","c"); 
  3. $arr2=array("c","d","e"); 
  4. $myarray=array_merge($arr1,$arr2); 
  5. print_r($myarray); 
  6. $myarray=array_unique($myarray); 
  7. print_r($myarray); 
  8. ?> 

实例代码如下:

  1. <?php 
  2. $array1=array(1, 2);//数组1 
  3. $array2=array(2, 3);//数组2 
  4. $array3=array_merge($array1$array2);//合并数组; 
  5. $array3=array_unique($array3);//移除数组中重复的值 
  6. ?> 

实例代码如下:

  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. ?> 

结果如下:

  1. 第一种情况  
  2.  
  3. Array  
  4.  
  5. (  
  6.     [0] => 1  
  7.     [1] => 2  
  8.     [2] => 3  
  9.     [3] => 4  
  10.     [4] => 5  
  11.     [5] => 6  
  12.     [6] => 7  
  13.     [7] => 8  
  14.     [8] => 9  
  15. )  
  16. Array  
  17.  
  18. (  
  19.     [0] => 1  
  20.     [1] => 2  
  21.     [2] => 3  
  22.     [3] => 4  
  23.     [4] => 5  
  24.     [5] => 6  
  25. )  
  26. Array  
  27.  
  28. (  
  29.     [0] => 7  
  30.     [1] => 8  
  31.     [2] => 9  
  32.     [3] => 4  
  33.     [4] => 5  
  34.     [5] => 6  
  35. )  
  36.    
  37. 第二种情况  
  38.  
  39. Array  
  40.  
  41. (  
  42.     [0] => a  
  43.     [1] => b  
  44.     [2] => c  
  45.     [3] => d  
  46.     [4] => e  
  47.     [5] => f  
  48.     [6] => a  
  49.     [7] => x  
  50.     [8] => y  
  51. )  
  52. Array  
  53.  
  54. (  
  55.     [0] => a  
  56.     [1] => b  
  57.     [2] => c  
  58.     [3] => d  
  59.     [4] => e  
  60.     [5] => f  
  61. )  
  62. Array  
  63. (  
  64.     [0] => a  
  65.     [1] => x  
  66.     [2] => y  
  67.     [3] => d  
  68.     [4] => e  
  69.     [5] => f  
  70. )  
  71.    
  72. 第三种情况  
  73. Array  
  74. (  
  75.     [0] => a  
  76.     [1] => b  
  77.     [2] => c  
  78.     [3] => d  
  79.     [4] => e  
  80.     [5] => f  
  81.     [6] => a  
  82.     [7] => x  
  83.     [8] => y  
  84. )  
  85. Array  
  86. (  
  87.     [1] => a  
  88.     [2] => b  
  89.     [3] => c  
  90.     [4] => d  
  91.     [5] => e  
  92.     [6] => f  
  93.     [7] => x  
  94.     [8] => y  
  95. )  
  96. Array  
  97. (  
  98.     [1] => a  
  99.     [7] => x  
  100.     [8] => y  
  101.     [2] => b  
  102.     [3] => c  
  103.     [4] => d  
  104.     [5] => e  
  105.     [6] => f  

拆分数组 array_slice()

array_slice()函数将返回数组中的一部分,从键offset开始,到offset+length位置结束.其形式:

Php代码  

1.array array_slice (array array, int offset[,int length])  

array array_slice (array array, int offset[,int length])    

offset 为正值时,拆分将从距数组开头的offset 位置开始;如果offset 为负值,则拆分从距数组末尾的offset 位置开始.如果省略了可选参数length,则拆分将从offset 开始,一直到数组的最后一个元素.如果给出了length 且为正数,则会在距数组开头的offset+length 位置结束.相反,如果给出了length且为负数,则在距数组开头的count(input_array)-|length|位置结束.考虑一个例子:

Php代码 

实例代码如下:

  1. <?php 
  2. $fruits = array("Apple""Banana""Orange""Pear""Grape""Lemon""Watermelon"); 
  3. $subset = array_slice($fruits, 3); 
  4. print_r($subset); 
  5. // output 
  6. // Array ( [0] => Pear [1] => Grape [2] => Lemon [3] => Watermelon ) 
  7. ?> 

然后我们使用下负长度:

Php代码 

实例代码如下:

  1. <?php 
  2. $fruits = array("Apple""Banana""Orange""Pear""Grape""Lemon""Watermelon"); 
  3. $subset = array_slice($fruits, 2, -2); 
  4. print_r($subset); 
  5. // output 
  6. // Array ( [0] => Orange [1] => Pear [2] => Grape ) 
  7. ?> 

Tags: 数组 两个

分享到: