| 
                        
                         php对一维数组排序自带函数就有很多 
PHP - 数组的排序函数 
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序 
但是,对于二维数组没有目前函数可以直接解决 
可以利用下面二个函数对二维数组以某个字段排序 
1.array_column() 返回输入数组中某个单一列的值。 
  
2.array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序PHP数组排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。 
  
代码实现(根据 num字段从高到低): 
数组未排序: 
array(12) {
  [0]=>
  array(2) {
    ["name"]=>
    string(9) "司徒镇"
    ["num"]=>
    float(57.6)
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(9) "延陵镇"
    ["num"]=>
    float(46.9)
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(9) "珥陵镇"
    ["num"]=>
    float(25.5)
  }
  [3]=>
  array(2) {
    ["name"]=>
    string(9) "导墅镇"
    ["num"]=>
    float(36.9)
  }
  [4]=>
  array(2) {
    ["name"]=>
    string(9) "黄塘镇"
    ["num"]=>
    float(64.9)
  }
  [5]=>
  array(2) {
    ["name"]=>
    string(9) "吕城镇"
    ["num"]=>
    float(38.6)
  }
  [6]=>
  array(2) {
    ["name"]=>
    string(9) "陵口镇"
    ["num"]=>
    float(25.5)
  }
  [7]=>
  array(2) {
    ["name"]=>
    string(9) "访仙镇"
    ["num"]=>
    float(32)
  }
  [8]=>
  array(2) {
    ["name"]=>
    string(9) "界牌镇"
    ["num"]=>
    float(58.5)
  }
  [9]=>
  array(2) {
    ["name"]=>
    string(9) "丹北镇"
    ["num"]=>
    float(230.3)
  }
  [10]=>
  array(2) {
    ["name"]=>
    string(12) "云阳街道"
    ["num"]=>
    float(209.7)
  }
  [11]=>
  array(2) {
    ["name"]=>
    string(12) "曲阿街道"
    ["num"]=>
    float(319.1)
  }
} 
代码实现($data['data']上面代码源数据): 
//根据字段num对数组$data进行降序排列
$all_num = array_column($data['data'],'num');
array_multisort($all_num,SORT_DESC,$data['data']); 
结果: 
array(12) {
  [0]=>
  array(2) {
    ["name"]=>
    string(12) "曲阿街道"
    ["num"]=>
    float(319.1)
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(9) "丹北镇"
    ["num"]=>
    float(230.3)
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(12) "云阳街道"
    ["num"]=>
    float(209.7)
  }
  [3]=>
  array(2) {
    ["name"]=>
    string(9) "黄塘镇"
    ["num"]=>
    float(64.9)
  }
  [4]=>
  array(2) {
    ["name"]=>
    string(9) "界牌镇"
    ["num"]=>
    float(58.5)
  }
  [5]=>
  array(2) {
    ["name"]=>
    string(9) "司徒镇"
    ["num"]=>
    float(57.6)
  }
  [6]=>
  array(2) {
    ["name"]=>
    string(9) "延陵镇"
    ["num"]=>
    float(46.9)
  }
  [7]=>
  array(2) {
    ["name"]=>
    string(9) "吕城镇"
    ["num"]=>
    float(38.6)
  }
  [8]=>
  array(2) {
    ["name"]=>
    string(9) "导墅镇"
    ["num"]=>
    float(36.9)
  }
  [9]=>
  array(2) {
    ["name"]=>
    string(9) "访仙镇"
    ["num"]=>
    float(32)
  }
  [10]=>
  array(2) {
    ["name"]=>
    string(9) "珥陵镇"
    ["num"]=>
    float(25.5)
  }
  [11]=>
  array(2) {
    ["name"]=>
    string(9) "陵口镇"
    ["num"]=>
    float(25.5)
  }
} 
完美解决 奈斯 
                                                (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |