PHP实现对二维数组某个键排序的方法


Posted in PHP onSeptember 14, 2016

本文实例讲述了PHP实现对二维数组某个键排序的方法。分享给大家供大家参考,具体如下:

/**
 * 对查询结果集进行排序
 * @access public
 * @param array $list 查询结果
 * @param string $field 排序的字段名
 * @param string $sortby 排序类型 (asc正向排序 desc逆向排序 nat自然排序)
 * @return array
 */
  function list_sort_by($list, $field, $sortby = 'asc')
  {
    if (is_array($list))
    {
      $refer = $resultSet = array();
      foreach ($list as $i => $data)
      {
        $refer[$i] = &$data[$field];
      }
      switch ($sortby)
      {
        case 'asc': // 正向排序
          asort($refer);
          break;
        case 'desc': // 逆向排序
          arsort($refer);
          break;
        case 'nat': // 自然排序
          natcasesort($refer);
          break;
      }
      foreach ($refer as $key => $val)
      {
        $resultSet[] = &$list[$key];
      }
      return $resultSet;
    }
    return false;
  }
/**
 * 例子
 * 求:根据二维数组的id键值降序排列(也就是id越大的排在越前)?
 */
$list = array(
  0 => array(
    'id' => 1,
    'name' => '第一'
  ),
  1 => array(
    'id' => 3,
    'name' => '第三'
  ),
  2 => array(
    'id' => 2,
    'name' => '第二'
  ),
  3 => array(
    'id' => 4,
    'name' => '第四'
  ),
);
//解答
$new_list = list_sort_by($list, 'id', 'desc');
print_r($new_list);

运行结果如下:

Array
(
  [0] => Array
    (
      [id] => 4
      [name] => 第四
    )
  [1] => Array
    (
      [id] => 3
      [name] => 第三
    )
  [2] => Array
    (
      [id] => 2
      [name] => 第二
    )
  [3] => Array
    (
      [id] => 1
      [name] => 第一
    )
)

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
谈谈PHP语法(3)
Oct 09 PHP
PHP学习之整理字符串
Apr 17 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
解析PHP工厂模式的好处
Jun 18 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
解析link_mysql的php版
Jun 30 PHP
解析csv数据导入mysql的方法
Jul 01 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 #PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 #PHP
PHP自定义函数实现格式化秒的方法
Sep 14 #PHP
PHP经典算法集锦【经典收藏】
Sep 14 #PHP
微信支付的开发流程详解
Sep 13 #PHP
PHP仿微信多图片预览上传实例代码
Sep 13 #PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 #PHP
You might like
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
最基础的Python的socket编程入门教程
2015/04/23 Python
python基础教程之五种数据类型详解
2017/01/12 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
python区分不同数据类型的方法
2019/10/14 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
全国道德模范事迹
2014/02/01 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
离婚案件被告代理词
2015/05/23 职场文书
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
2021/12/06 HTML / CSS
千万级用户系统SQL调优实战分享
2022/03/03 MySQL