vlambda博客
学习文章列表

php多维数组根据指定字段排序

在开发过程中,会遇到对数组进行排序的情况。而排序有各种各种各样的方法,常见的有快速排序,冒泡排序,插入排序等。这里记录的是在快排的基础上加入了 根据指定字段的排序。
在实际的撸码过程中,php对数组进行排序的需求不是很强烈,如果是从数据库中查询,也可以使用数据库的排序方式进行排序。但偶尔也会有特别的情况,不能只是单纯的 数据库排序方式完成对数据的操作。这时候就需要自己手撸代码。
这也是本文记录的原因和目的,为的是方便以后遇到相似问题之时,不用再抓头发,到处寻找可以 ctrl+c 的地方了。
这个需求可能用到的情况不多,但是如果下次再遇到,就不用再重复撸码,也能加快工作进度。 话不多说,上代码!

/** * 多维数组根据指定字段排序 * @param array 需要排序的数组 * @param string 根据哪个字段排序 * @return mixed */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);}