array_multisort 对二维数组进行排序
最后更新于:2022-04-02 02:27:31
[TOC]
## 对多维数据进行排序
```
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
array_map(function($item)use(&$tmp){
$tmp['volume'][]=$item['volume'];
$tmp['edition'][]=$item['edition'];
}, $data);
// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($tmp['volume'], SORT_DESC, $tmp['edition'], SORT_ASC, $data);
var_dump($data);
//以volume 为第一个排序方式,edtion 为第二排序方式
//[
// 0 => ['volume' => 98, 'edition' => 2,],
// 1 => ['volume' => 86, 'edition' => 1,],
// 2 => ['volume' => 86, 'edition' => 6,],
// 3 => ['volume' => 85, 'edition' => 6,],
// 4 => ['volume' => 67, 'edition' => 2,],
// 5 => ['volume' => 67, 'edition' => 7,],
//];
```
';