<?php
function al_merge($arrA,$arrB){
$arrC = array();
while(count($arrA)&&count($arrB)){
$arrC[]=$arrA[‘0’]<$arrB[‘0’]?array_shift($arrA):array_shift($arrB);
}
return array_merge($arrC,$arrA,$arrB);
}
function al_merge_sort($arr){
$len = count($arr);
if($len<=1)
return $arr;
$mid = intval($len/2);
$left_arr = array_slice($arr,0,$mid);
$right_arr = array_slice($arr,$mid);
$left_arr = al_merge_sort($left_arr);
$right_arr = al_merge_sort($right_arr);
$arr = al_merge($left_arr,$right_arr);
return $arr;
}
$arr=array(7,5,8,3,2,1,6,4);
echo ‘<pre/>’;
print_r(al_merge_sort($arr));