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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
PHP 简单数组排序实现代码
Aug 05 PHP
简单的php写入数据库类代码分享
Jul 26 PHP
php程序的国际化实现方法(利用gettext)
Aug 14 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
PHP不用递归遍历目录下所有文件的代码
Jul 04 PHP
C#静态方法与非静态方法实例分析
Sep 22 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 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
php实现加减法验证码代码
2014/02/14 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
$.ajax json数据传递方法
2008/11/19 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
vue router demo详解
2017/10/13 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
简介Django中内置的一些中间件
2015/07/24 Python
Python WSGI的深入理解
2018/08/01 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
Python模块常用四种安装方式
2020/10/20 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
毕业生造价工程师求职信
2013/10/17 职场文书
国际会议邀请函范文
2014/01/16 职场文书
岗位聘任书范文
2014/03/29 职场文书
低碳环保倡议书
2014/04/14 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
python for循环赋值问题
2021/06/03 Python
vue实现锚点定位功能
2021/06/29 Vue.js
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python