怎么在PHP中合并两个有序数组

  介绍

这篇文章给大家介绍怎么在PHP中合并两个有序数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

具体如下:

arr1 美元;=,数组(1,2,3,4,5,6,7,8);   $ arr2 =,阵列(3、4、5、7、9、10);   1//方法   function  mergeOrderly1 (arr1, arr2美元){   我=0;美元,j=0;   数组,int 美元;=,();   ,而(i<美元;count ($ arr1),,,, j<美元;count ($ arr2)) {   美元才能int [],=, arr1美元[$ i] & lt;美元arr2 [j]美元? arr1美元($ i + +): arr2美元($ j + +);   ,}   ,而(i<美元;count ($ arr1)) {   美元才能int [],=, arr1美元($ i + +);   ,}   ,而(j<美元;count ($ arr2)) {   美元才能int [],=, arr2美元($ j + +);   ,}   ,//int 美元;=,array_merge (int美元,array_slice(我)arr1美元,美元);   ,//int 美元;=,array_merge (int美元,array_slice (arr2, j美元));   ,return 美元int;   }//方法2   function  mergeOrderly2 (arr1, arr2美元){   数组,arr 美元;=,();//定义最终数组容器   ,arr2Num 美元;=,count ($ arr2);//统计数组长度   ,arr1Num 美元;=,count ($ arr1);   ,i1 美元;=,0;//数组1,的循环标记   ,i2 美元;=,0;//数组2,的循环标记   ,而($ i1  & lt;, arr1Num 美元;| |,i2 美元;& lt;, arr2Num美元){//是否还需要合并   如果才能(i1 美元;& lt;, arr1Num 美元;,,,i2 美元;& lt;, arr2Num美元){//当两个数组都没有到达末尾,情况一   ,,如果(arr1美元(美元i1),祝辞,arr2美元(美元i2)){//需要比较数组1和数组2,小的放入目标数组,并且标记+ 1   ,,,arr[],美元=,arr2美元(美元i2);   ,,,i2美元+ +;   其他,,}{   ,,,arr[],美元=,arr1美元(美元i1);   ,,,i1美元+ +;   ,,}   }elseif才能(i1 美元;& lt;, arr1Num 美元;,,,i2 美元;祝辞=,arr2Num美元){//数组2,已经到达末尾,而数1组还为到达,情况二   ,,arr[],美元=,arr1美元(美元i1);//直接把数组1的内容插入到目标数组中   美元,才能i1 + +;   }elseif才能(i2 美元;& lt;, arr2Num 美元;,,,i1 美元;祝辞=,arr1Num美元){//数组1已经到达末尾,而数组2还未到,达情况三   ,,arr[],美元=,arr2美元(美元i2);//直接把数组2的内容插入到目标数组中   ,,i2美元+ +;   ,,}   ,}   ,return  arr美元;   }   print_r (mergeOrderly1 (arr1, arr2美元));   print_r (mergeOrderly2 (arr1, arr2美元));

运行结果:

数组   (   ,[0]=祝辞;1   ,[1]=祝辞;2   ,[2]=祝辞;3   ,[3]=祝辞;3   ,[4]=祝辞;4   ,[5]=祝辞;4   ,[6]=祝辞;5   ,[7]=祝辞;5   ,[8]=祝辞;6   ,[9]=祝辞;7   ,[10]=祝辞;7   ,[11]=在8   ,[12]=祝辞9   ,[13]=在10   )   数组   (   ,[0]=祝辞;1   ,[1]=祝辞;2   ,[2]=祝辞;3   ,[3]=祝辞;3   ,[4]=祝辞;4   ,[5]=祝辞;4   ,[6]=祝辞;5   ,[7]=祝辞;5   ,[8]=祝辞;6   ,[9]=祝辞;7   ,[10]=祝辞;7   ,[11]=在8   ,[12]=祝辞9   ,[13]=在10   )

细心的读者应该发现了,合并后的数组并没有去重复。下面介绍一下数组合并后去重复的方法:

1。单数组去重复

<代码> array_unique (arrTest美元)

2。多数组去重复

<代码>中的(array_flip (arr1美元)+ array_flip (arr2美元))

测试示例:

arr1 美元;=,数组(1、2、3、4、5);   $ arr2 =,阵列(1、2、3、6、7);   arr3 美元;=,阵列(& # 39;0 & # 39;=祝辞1 & # 39;1 & # 39;=祝辞;2,& # 39;2 & # 39;=祝辞;3,& # 39;3 & # 39;=在4日& # 39;4 & # 39;=祝辞;5);   arr4 美元;=,阵列(& # 39;0 & # 39;=祝辞1 & # 39;1 & # 39;=祝辞;2,& # 39;2 & # 39;=祝辞;3,& # 39;3 & # 39;=在6日& # 39;4 & # 39;=祝辞;7);   arr5 美元;=,阵列(& # 39;0 & # 39;=祝辞1 & # 39;一个# 39;=祝辞;2,& # 39;b # 39;=祝辞;3,& # 39;c # 39;=在4日& # 39;4 & # 39;=祝辞;5);   arr6 美元;=,阵列(& # 39;0 & # 39;=祝辞1 & # 39;一个# 39;=祝辞;2,& # 39;c # 39;=祝辞;3,& # 39;d # 39;=在6日& # 39;4 & # 39;=祝辞;7);   var_dump (array_merge (arr1美元,,arr2美元));   var_dump (arr1 + arr2美元);   var_dump(中的(array_flip (arr1美元)+ array_flip (arr2美元)));   echo  & # 39; & lt; br> & # 39;;   var_dump (array_merge (arr3美元,,arr4美元));   var_dump (arr3 + arr4美元);   var_dump(中的(array_flip (arr3美元)+ array_flip (arr4美元)));   echo  & # 39; & lt; br> & # 39;;   var_dump (array_merge (arr5美元,,arr6美元));   var_dump (arr5 + arr6美元);

怎么在PHP中合并两个有序数组