<php
class Goods{
//方法一:
public static function main($data, $col)
{
$ardata = self::sortt($data, $col);
return $ardata;
}
private static function sortt($data, $col)
{
if (count($data) <= 1) {
return $data;
}
$tem = $data [0][$col];
$leftarray = array();
$rightarray = array();
for ($i = 1; $i < count($data); $i++) {
if ($data [$i][$col] <= $tem) {
$leftarray[] = $data[$i];
} else {
$rightarray[] = $data[$i];
}
}
$leftarray = self::sortt($leftarray, $col);
$rightarray = self::sortt($rightarray, $col);
$sortarray = array_merge($leftarray, array($data[0]), $rightarray);
return $sortarray;
}
//方法二:
/**
* @param array $array 需要排序的数组
* @param string $field 排序的字段
* @param string $sort 排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
*/
public static function arraySequence($array, $field, $sort = 'SORT_DESC')
{
$arrSort = array();
foreach ($array as $uniqid => $row) {
foreach ($row as $key => $value) {
$arrSort[$key][$uniqid] = $value;
}
}
array_multisort($arrSort[$field], constant($sort), $array);
return $array;
}
}
//调用:
$goods=array(
array('id'=>1,'name'=>'T恤1','price'=>76),
array('id'=>1,'name'=>'T恤2','price'=>183),
array('id'=>1,'name'=>'T恤3','price'=>165),
array('id'=>1,'name'=>'T恤4','price'=>32),
);
//方法一:
print_r(Goods::sort($goods));
//方法二;
print_r(Goods::arraySequence($goods,'price','SORT_ASC'));
二维数组快速排序
最新推荐文章于 2023-02-04 18:36:44 发布