在开发过程中,会遇到对数组进行排序的情况。而排序有各种各种各样的方法,常见的有快速排序,冒泡排序,插入排序等。这里记录的是在快排的基础上加入了
根据指定字段的排序。
在实际的撸码过程中,php对数组进行排序的需求不是很强烈,如果是从数据库中查询,也可以使用数据库的排序方式进行排序。但偶尔也会有特别的情况,不能只是单纯的
依
靠数据库排序方式完成对数据的操作。这时候就需要自己手撸代码。
这也是本文记录的原因和目的,为的是方便以后遇到相似问题之时,不用再抓头发,到处寻找可以
ctrl+c 的地方了。
这个需求可能用到的情况不多,但是如果下次再遇到,就不用再重复撸码,也能加快工作进度。
话不多说,上代码!
function quickSort($data = [], $column = '') {
if (!$column) {
return false;
}
$c = count($data);
if ($c < 2) {
return $data;
}
$leftArr = $rightArr = [];
$middle = array_shift($data);
foreach ($data as $k => $v) {
if ($data[$k][$column] < $middle[$column]) {
$leftArr[] = $data[$k];
} else {
$rightArr[] = $data[$k];
}
}
$leftArr = quickSort($leftArr, $column);
$rightArr = quickSort($rightArr, $column);
return array_merge($leftArr, array($middle), $rightArr);
}