二维数组排序算法与一维数组排序算法基本理论都是一样,都是通过比较把小的值放在左变的数组里,大的值放在右边的数组里在分别递归。
<?php class Bubble { private function __construct() { } private static function sortt($data) { if (count ( $data ) <= 1) { return $data; } $tem = $data [0]['score']; $leftarray = array (); $rightarray = array (); for($i = 1; $i < count ( $data ); $i ++) { if ($data [$i]['score'] <= $tem ) { $leftarray[] = $data[$i]; } else { $rightarray[] = $data[$i]; } } $leftarray=self::sortt($leftarray); $rightarray=self::sortt($rightarray); $sortarray = array_merge ( $leftarray, array ($data[0]), $rightarray ); return $sortarray; } public static function main($data) { $ardata = self::sortt ( $data ); return $ardata; } } $arr=array( array('sid'=>1,'score'=>76), array('sid'=>2,'score'=>93), array('sid'=>3,'score'=>68.5), array('sid'=>4,'score'=>82.5), array('sid'=>5,'score'=>60.5) ); print_r(Bubble::main($arr));