php三种方式对二维数组进行花样排序
2017-08-27 17:19
302 查看
以下分别使用了冒泡排序,array_multisort, usort对二维数组进行排序
<?php $array = [ 0 => ['name' => 'lele', 'score' => 77], 1 => ['name' => 'haha', 'score' => 100], 2 => ['name' => 'xly', 'score' => 67], 3 => ['name' => 'mao', 'score' => 67], 4 => ['name' => 'ming', 'score' => 98], ]; //冒泡排序 function sort_pop(&$array, $order = 'asc') { $len = count($array); if ($order == 'asc') {//从小到大排序 for ($i=0; $i < $len; $i++) { for ($j=$len-1; $j >$i ; $j--) { if ($array[$j]['score'] < $array[$j - 1]['score']) { swap($array[$j], $array[$j - 1]); } } } } else {//从大到小排序 for ($i=0; $i < $len; $i++) { for ($j=0; $j < $len-$i-1; $j++) { if ($array[$j]['score'] < $array[$j + 1]['score']) { swap($array[$j], $array[$j+1]); } } } } } function swap(&$a, &$b) { $temp = $a; $a = $b; $b = $temp; } //(1)冒泡排序 sort_pop($array, 'asc'); // (2) 使用php自身的函数 // $score = array_column($array, 'score'); // $name = array_column($array, 'name'); // // 将$array数组按照score 顺序排序,按照name倒序排序 // array_multisort($score, SORT_ASC, SORT_NUMERIC, $name, SORT_DESC, SORT_STRING, $array); // (3)使用自定义函数进行排序 // usort($array, function ($a, $b) { // if ($a['score'] == $b['score']) { // return 0; // } // return $a['score'] < $b['score'] ? -1 : 1; // }); var_dump($array);exit;
相关文章推荐
- php二维数组排序的三种实现方式
- php对二维数组进行排序的简单实例
- PHP中二维数组的排序、去除二维数组的重复、对二维数组的某一字段进行求和的方法
- php对二维数组进行相关操作(排序、转换、去空白等)
- php对二维数组进行排序
- php对二维数组进行排序
- PHP 二维数组根据某个字段进行排序
- PHP 二维数组根据某个字段进行排序
- PHP实现二维数组按某列进行排序的方法
- PHP开发小技巧②—实现二维数组根据key进行排序
- php二维数组根据某字段排序(对查询结果集进行排序)
- 用PHP自带函数对二维数组进行排序
- php对二维数组进行排序
- PHP对二维数组进行双条件排序的实现
- PHP按指定键值对二维数组进行排序的方法
- PHP实现二维数组按某列进行排序的方法
- php对二维数组进行排序的简单实例
- PHP实现二维数组根据key进行排序的方法
- php自定义对二维数组进行排序
- php二维数组根据某字段排序(对查询结果集进行排序)