在数组合并的时候能够使用两个函数,两者的区别是什么?

在数组合并的时候能够使用两个函数 “+”和“array_merge()”

PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的!

主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意

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

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

需要注意的是数组键形式 ‘数字‘ 等价于 数字

01 $a = array(‘a‘, ‘b‘);
02 $b = array(‘c‘, ‘d‘);
03 $c = $a + $b;
04 var_dump($a);
05 var_dump(array_merge($a, $b));
06  
07 //输出:
08  
09 array
10   0 => string ‘a‘ (length=1)
11   1 => string ‘b‘ (length=1)
12  
13 array
14   0 => string ‘a‘ (length=1)
15   1 => string ‘b‘ (length=1)
16   2 => string ‘c‘ (length=1)
17   3 => string ‘d‘ (length=1)
18  
19 ++++++++++++++++++++++++++++++++++++++++++ 
20    
21 $a = array(
22     0 => ‘a‘,
23     1 => ‘b‘
24 );
25 $b = array(
26     0 => ‘c‘,
27     1 => ‘b‘
28 );
29 $c = $a + $b;
30 var_dump($c);
31 var_dump(array_merge($a, $b));
32  
33 //输出:
34  
35 array
36   0 => string ‘a‘ (length=1)
37   1 => string ‘b‘ (length=1)
38  
39 array
40   0 => string ‘a‘ (length=1)
41   1 => string ‘b‘ (length=1)
42   2 => string ‘c‘ (length=1)
43   3 => string ‘b‘ (length=1)
44  
45 ++++++++++++++++++++++++++++++++++++++++++ 
46  
47 $a = array(‘a‘, ‘b‘);
48 $b = array(
49     ‘0‘ => ‘c‘,
50     1 => ‘b‘
51 );
52 $c = $a + $b;
53 var_dump($c);
54 var_dump(array_merge($a, $b));
55  
56 //输出:
57 array
58   0 => string ‘a‘ (length=1)
59   1 => string ‘b‘ (length=1)
60  
61 array
62   0 => string ‘a‘ (length=1)
63   1 => string ‘b‘ (length=1)
64   2 => string ‘c‘ (length=1)
65   3 => string ‘b‘ (length=1)
66  
67 ++++++++++++++++++++++++++++++++++++++++++
68  
69 $a = array(
70     0 => ‘a‘,
71     1 => ‘b‘
72 );
73 $b = array(
74     ‘0‘ => ‘c‘,
75     ‘1‘ => ‘b‘
76 );
77 $c = $a + $b;
78 var_dump($c);
79 var_dump(array_merge($a, $b));
80  
81 输出:
82  
83 array
84   0 => string ‘a‘ (length=1)
85   1 => string ‘b‘ (length=1)
86  
87 array
88   0 => string ‘a‘ (length=1)
89   1 => string ‘b‘ (length=1)
90   2 => string ‘c‘ (length=1)
91   3 => string ‘b‘ (length=1)


对多个数组合并去重技巧

view source?

1 $a = array(‘1001‘,‘1002‘);
2 $b = array(‘1002‘,‘1003‘,‘1004‘);
3 $c = array(‘1003‘,‘1004‘,‘1005‘);
4 $d = count(array_flip($a) + array_flip($b) + array_flip($c));
时间: 2024-10-09 21:16:36

在数组合并的时候能够使用两个函数,两者的区别是什么?的相关文章

算法--两个有序数组合并

两个有序数组合并 关键点:从后往前进行比较,这样保证数组A有用的部分不会因为在合并的过程中覆盖掉 第15节 有序数组合并练习题 有两个从小到大排序以后的数组A和B,其中A的末端有足够的缓冲空容纳B.请编写一个方法,将B合并入A并排序. 给定两个有序int数组A和B,A中的缓冲空用0填充,同时给定A和B的真实大小int n和int m,请返回合并后的数组. Java (javac 1.7) 代码自动补全 1 import java.util.*; 2 3 public class Merge {

PHP中数组合并的两种方法及区别介绍

PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = array( 'where' => 'uid=2', 'order' => 'uid desc', ); 1. array_merge,如果两个数组存在相同的key,后面的一个会覆盖前面的 复制代码代码如下: <?php $c = array_merge($a, $b); var_expo

【C练习】两个已经从小到大的数组合并成为一个从小到大排序的数组

两个已经从小到大的数组合并成为一个从小到大排序的数组 1 #include<stdio.h> 2 int main() 3 { 4 int m,n,i,j,k,tem=0; 5 printf("这两个数组分别有多少个数:\n"); 6 scanf("%d%d",&m,&n); 7 int a[m],b[n],c[m+n]; 8 printf("从小到大输入%d个数:\n",m); 9 for(i=0;i<m;i+

Java中如何把两个数组合并为一个

JavaArray合并数组 目录(?)[+] 一apache-commons 二Systemarraycopy 三ArrayscopyOf 四ArraynewInstance http://freewind.me/blog/20110922/350.html 在Java中,如何把两个String[]合并为一个? 看起来是一个很简单的问题.但是如何才能把代码写得高效简洁,却还是值得思考的.这里介绍四种方法,请参考选用. 一.apache-commons 这是最简单的办法.在apache-commo

两个有序数组合并成一个有序数组

两个有序数组合并成一个有序数组 1. 题目描述 数组a是有序的,数组b也是有序的,如何高效地合并它们成一个数组,并且新数组也是有序的? 2. 从后往前合并 这道题目是师兄电面阿里的时候,问到的一道题目.现在我们来说一下解法~ 假设数组a足够长,可以在数组a上合并二者.我们的解法基本思想就是从后往前合并数组. 每次合并的时候,都要比较a和b当前数组的大小,取较大的值后移,注意一定要是后移! 为什么从后往前呢?其实就是为了方便后移,因为较大的一定是在后面的. 程序如下: #include<iostr

php将两个或多个数组合并为一个数组函数

array_merge() 函数把两个或多个数组合并为一个数组. 例子 1 <?php $a1=array("a"=>"Horse","b"=>"Dog"); $a2=array("c"=>"Cow","b"=>"Cat"); print_r(array_merge($a1,$a2)); ?> 输出: Array

顺序表 | 二分查找:两个数组合并后的中位数

输入两个长度相同的升序数组,返回这两个数组合并后的中位数 C++代码: int bisearch_midNum(int a[],int b[],int n){ int s1=0,s2=0,d1=n-1,d2=n-1,m1,m2; while(s1!=d1 || s2!=d2){//只要a,b序列同时出现了s==d的情况,才能False退出 m1=(s1+d1)/2; m2=(s2+d2)/2; system("pause"); if(a[m1]==b[m2]) return a[m1]

python将两个数组合并成一个数组的两种方法的代码

内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","Green","Blue"]c2 = ["Orange","Yellow","Indigo"]c1.extend(c2) assert c1 == ["Red","Green",&q

java 有序数组合并

有序数组合并,例如: 数组 A=[100, 89, 88, 67, 65, 34], B=[120, 110, 103, 79, 66, 35, 20] 合并后的结果 result=[120, 110, 103, 100, 89, 88, 79, 67, 66, 65, 35, 34, 20] 程序: import java.util.Arrays; public class Test { public static void main(String[] args) { int[] a = {