<?php function quickSort($arr){ $count=count($arr); if($count>1){ //以第一个数作为基准 $mark=$arr[0]; //定义两个空数组来存放基准数两边的数据 $right=array(); $left=array(); //开始循环比较,从大到小排序 for ($i = 1; $i < $count; $i++) { if($mark>$arr[$i]){ $right[]=$arr[$i]; }else{ $left[]=$arr[$i]; } } //一趟快速排序结束 //递归快速排序 $right=quickSort($right); $left=quickSort($left); //把最后的结果组合为一个数组 $result=array_merge($left,array($mark),$right); }else{ $result=$arr; } //返回结果 return $result; } //定义一个数组 $arr=array(8,2,1,5,7,6,4,9,3); $result=quickSort($arr); var_dump($result);