function quick_sort($arr) { $cnt = count($arr); if($cnt <= 1) { return $arr; } $base_num = $arr[0]; $left_array = array(); $right_array = array(); for($i = 1; $i < $cnt; $i++) { if($base_num > $arr[$i]) { $left_array[] = $arr[$i]; } else { $right_array[] = $arr[$i]; } } $left_array = quick_sort($left_array); $right_array = quick_sort($right_array); return array_merge($left_array, array($base_num), $right_array); } echo '<pre>'; var_dump(quick_sort($arr));