• PHP二维数组如何根据某个字段排序


    分享下PHP二维数组如何根据某个字段排序的方法。

    从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。

    本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。

    要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。

    这个要求就不是 ORDER BY 能解决的问题了。因此翻看 PHP手册查找到了如下方法,做此笔记。

    代码:

    <?php 
    /** 
    * 二维数组根据某个字段排序 
    * 功能:按照用户的年龄倒序排序 
    * @author ruxing.li
    * @edit www.jbxue.com
    */ 
    header('Content-Type:text/html;Charset=utf-8'); 
    $arrUsers = array( 
    array( 
    'id' => 1, 
    'name' => '张三', 
    'age' => 25, 
    ), 
    array( 
    'id' => 2, 
    'name' => '李四', 
    'age' => 23, 
    ), 
    array( 
    'id' => 3, 
    'name' => '王五', 
    'age' => 40, 
    ), 
    array( 
    'id' => 4, 
    'name' => '赵六', 
    'age' => 31, 
    ), 
    array( 
    'id' => 5, 
    'name' => '黄七', 
    'age' => 20, 
    ), 
    );
    
    
    $sort = array( 
    'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序 
    'field' => 'age', //排序字段 
    ); 
    $arrSort = array(); 
    foreach($arrUsers AS $uniqid => $row){ 
    foreach($row AS $key=>$value){ 
    $arrSort[$key][$uniqid] = $value; 
    } 
    } 
    if($sort['direction']){ 
    array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers); 
    }
    
    var_dump($arrUsers);
    
    /* 
    输出结果:
    
    array (size=5) 
    0 => 
    array (size=3) 
    'id' => int 5 
    'name' => string '黄七' (length=6) 
    'age' => int 20 
    1 => 
    array (size=3) 
    'id' => int 2 
    'name' => string '李四' (length=6) 
    'age' => int 23 
    2 => 
    array (size=3) 
    'id' => int 1 
    'name' => string '张三' (length=6) 
    'age' => int 25 
    3 => 
    array (size=3) 
    'id' => int 4 
    'name' => string '赵六' (length=6) 
    'age' => int 31 
    4 => 
    array (size=3) 
    'id' => int 3 
    'name' => string '王五' (length=6) 
    'age' => int 40
    
    */
  • 相关阅读:
    Rufus 真神器也
    i2c-tools命令使用 示例
    常用行棋手法
    Windows系统如何更改任务栏缩略图的大小
    微擎 钻石投票
    发卡系统
    支付宝当面付
    django 多个admin 展示不同model 定制
    Django Admin:如何清除“最近的动作”面板
    tomcat正常运行一段时间后,突然访问不了项目了, 其它根页面报404错误
  • 原文地址:https://www.cnblogs.com/cfinder010/p/3766847.html
Copyright © 2020-2023  润新知