PHP根据二维数组KEY下标进行排序,多重排序 | array_multisort
1.数据库里面原始数据,大家可以看到两列中其实是乱的。那么我想将他按顺序进行排序怎么做呢
volume | edition
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7
2.php 查出来或模拟的数据
$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);
3.进行排序
foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } //将数据根据 volume 降序排列,根据 edition 升序排列
//把 $data 作为最后一个参数,以通用键排序 array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
print_r($data);
4.排序结果
volume | edition
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7
怎么样,看完是不是感觉很强大,其实这个函数还有很多增强型的应用,大家可以翻看一下手册。。
参数 | 描述 |
---|---|
array1 | 必需。规定数组。 |
sorting order |
可选。规定排列顺序。可能的值:
|
sorting type |
可选。规定排序类型。可能的值:
|
array2 | 可选。规定数组。 |
array3 |
可选。规定数组。
|