PHP实现合并两个有序数组的方法分析
本文实例讲述了PHP实现合并两个有序数组的方法。分享给大家供大家参考,具体如下:
$arr1=array(1,2,3,4,5,6,7,8); $arr2=array(3,4,5,7,9,10); //方法1 functionmergeOrderly1($arr1,$arr2){ $i=0;$j=0; $int=array(); while($i$arr2[$i2]){//需要比较数组1和数组2,小的放入目标数组,并且标记+1 $arr[]=$arr2[$i2]; $i2++; }else{ $arr[]=$arr1[$i1]; $i1++; } }elseif($i1<$arr1Num&&$i2>=$arr2Num){//数组2已经到达末尾,而数组1还为到达,情况二 $arr[]=$arr1[$i1];//直接把数组1的内容插入到目标数组中 $i1++; }elseif($i2<$arr2Num&&$i1>=$arr1Num){//数组1已经到达末尾,而数组2还未到达,情况三 $arr[]=$arr2[$i2];//直接把数组2的内容插入到目标数组中 $i2++; } } return$arr; } print_r(mergeOrderly1($arr1,$arr2)); print_r(mergeOrderly2($arr1,$arr2));
运行结果:
Array ( [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 ) Array ( [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_keys(array_flip($arr1)+array_flip($arr2))
测试示例:
$arr1=array(1,2,3,4,5); $arr2=array(1,2,3,6,7); $arr3=array('0'=>1,'1'=>2,'2'=>3,'3'=>4,'4'=>5); $arr4=array('0'=>1,'1'=>2,'2'=>3,'3'=>6,'4'=>7); $arr5=array('0'=>1,'a'=>2,'b'=>3,'c'=>4,'4'=>5); $arr6=array('0'=>1,'a'=>2,'c'=>3,'d'=>6,'4'=>7); var_dump(array_merge($arr1,$arr2)); var_dump($arr1+$arr2); var_dump(array_keys(array_flip($arr1)+array_flip($arr2))); echo'
'; var_dump(array_merge($arr3,$arr4)); var_dump($arr3+$arr4); var_dump(array_keys(array_flip($arr3)+array_flip($arr4))); echo'
'; var_dump(array_merge($arr5,$arr6)); var_dump($arr5+$arr6);
运行结果:
array(10){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5)[5]=>int(1)[6]=>int(2)[7]=>int(3)[8]=>int(6)[9]=>int(7)}array(5){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5)}array(7){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5)[5]=>int(6)[6]=>int(7)} array(10){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5)[5]=>int(1)[6]=>int(2)[7]=>int(3)[8]=>int(6)[9]=>int(7)}array(5){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5)}array(7){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5)[5]=>int(6)[6]=>int(7)} array(8){[0]=>int(1)["a"]=>int(2)["b"]=>int(3)["c"]=>int(3)[1]=>int(5)[2]=>int(1)["d"]=>int(6)[3]=>int(7)}array(6){[0]=>int(1)["a"]=>int(2)["b"]=>int(3)["c"]=>int(4)[4]=>int(5)["d"]=>int(6)}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP数学运算技巧总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》及《php程序设计算法总结》
希望本文所述对大家PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。