• 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);


  • 相关阅读:
    Shiro入门
    Springmvc 文件上传和json处理
    SpringMVC入门
    Mybatis关联关系
    Mybatis整合Ehcache或Redis实现二级缓存
    mybatis与spring集成
    mybatis动态sql以及分页
    MyBatis入门
    使用java代码操作Redis
    【转】 制作Android Demo GIF:程序演示效果GIF图录制
  • 原文地址:https://www.cnblogs.com/aifengguo/p/8335461.html
Copyright © 2020-2023  润新知