zoukankan      html  css  js  c++  java
  • php 二维数组排序

    单字段排序:

    /**
    * 二维数组根据字段进行排序
    * @params array $array 需要排序的数组
    * @params string $field 排序的字段
    * @params string $sort 排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
    */
    function arraySequence($array, $field, $sort = 'SORT_DESC'){
    $arrSort = array();
    foreach ($array as $uniqid => $row) {
    foreach ($row as $key => $value) {
    $arrSort[$key][$uniqid] = $value;
    }
    }
    array_multisort($arrSort[$field], constant($sort), $array);
    return $array;
    }

    多字段排序
    function sortArrByManyField(){
    $args = func_get_args();
    if(empty($args)){
    return null;
    }
    $arr = array_shift($args);
    if(!is_array($arr)){
    throw new Exception('第一个参数不为数组');
    }
    foreach($args as $key => $field){
    if(is_string($field)){
    $temp = array();
    foreach($arr as $index=> $val){
    $temp[$index] = $val[$field];
    }
    $args[$key] = $temp;
    }
    }
    $args[] = &$arr;//引用值
    call_user_func_array('array_multisort',$args);
    return array_pop($args);
    }
    $person = array(
    array('num'=>'101','id'=>6,'name'=>'zhangsan','age'=>6),
    array('num'=>'201','id'=>7,'name'=>'ahangsan','age'=>4),
    array('num'=>'103','id'=>1,'name'=>'bhangsan','age'=>9),
    array('num'=>'401','id'=>3,'name'=>'dhangsan','age'=>2),
    );
    $a = $this->sortArrByManyField($person, 'age', SORT_DESC, 'num', SORT_DESC);


  • 相关阅读:
    Vue监视数据的原理
    JS 获取随机数
    Vue中的计算属性(computed)、方法(methods)、watch(侦听)
    Vue3中使用调试工具 Vue.js Devtools
    Vue3.X 新特性 Composition Api
    vue、js 保留小数点位数以及转化为百分比
    常用的网页布局之列表页
    CSS常见布局技巧
    2、C#入门第2课
    1、C#入门第一课
  • 原文地址:https://www.cnblogs.com/aifengguo/p/8335461.html
Copyright © 2011-2022 走看看