版权声明: https://blog.csdn.net/gwz1196281550/article/details/80811204
/** * 二维数组的快速排序(推荐) * @param Array $data 二维数组 * @param string $field 所要排序的字段 * @param string $order 正序或倒序 * @param boolean $isabs 是否比较绝对值 */ function quickSort($data,$field,$order="asc",$isabs=false) { $len=count($data); if($len <= 1){ return $data; } $item = $data[0][$field]; $left = array(); $right = array(); $abs=$isabs==false?"":"abs"; switch($order){ case 'desc'://倒叙 for($i = 1;$i < $len; $i++){ if(self::isabs($data[$i][$field],$isabs) > self::isabs($item,$isabs)){ $left[] =$data[$i]; }else{ $right[]=$data[$i]; } } break; case 'asc': for($i = 1;$i < $len; $i++){ if(self::isabs($data[$i][$field],$isabs) < self::isabs($item,$isabs)){ $left[] =$data[$i]; }else{ $right[]=$data[$i]; } } break; default: break; } $left = self::quickSort($left,$field,$order); $right = self::quickSort($right,$field,$order); $result = array_merge($left,array($data[0]),$right); return $result; }