1 $a = array(1,3,6,10,29,37,44); 2 $b = array(2,5,14,19,28,55,73); 3 $c = array(); 4 5 $countA = count($a); 6 $countB = count($b); 7 8 $pointA = 0; 9 $pointB = 0; 10 11 while($pointA < $countA || $pointB < $countB){ //结束条件是两个数组的指针都大于数组的数量 12 if($pointA < $countA && $pointB < $countB){ //分三种情况,两个数组都有数据 13 if($a[$pointA] > $b[$pointB]){ //如果a数组中的大于b数组的,那么把小的一个放在c数组,然后b数组中的指针加1 14 $c[] = $b[$pointB]; 15 //echo $pointB; 16 $pointB++; 17 }else{ 18 $c[] = $a[$pointA]; //否则的话把a数组的中数组放在c数组中,a的指针加1 19 //echo $pointB; 20 $pointA++; 21 } 22 }elseif($pointA >= $countA){ //a数组的没有数据了 23 $c[] = $b[$pointB]; 24 $pointB++; 25 }elseif($pointB >= $countB){ 26 $c[] = $a[$pointA]; 27 $pointA++; 28 } 29 } 30 echo "<pre>"; 31 print_r($c);