二维数组排序算法与一维数组排序算法基本理论都是一样,都是通过比较把小的值放在左变的数组里,大的值放在右边的数组里在分别递归。
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));