介绍
这篇文章给大家介绍怎么在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中合并两个有序数组