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 程式大小
Dec 06 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
php获取随机数组列表的方法
Nov 13 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
yii2项目实战之restful api授权验证详解
May 20 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 PHP
php实现分页功能的详细实例方法
Sep 29 PHP
PHP7 其他修改
Mar 09 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
javascript比较文档位置
2008/04/08 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
Python基于pillow判断图片完整性的方法
2016/09/18 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
树莓派实现移动拍照
2019/06/22 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
美国购车网站:TrueCar
2016/10/19 全球购物
大学生职业规划前言模板
2013/12/27 职场文书
自我鉴定四大框架
2014/01/17 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
2015年元旦标语大全
2014/12/09 职场文书
物业接待员岗位职责
2015/04/15 职场文书
道歉的话语大全
2015/05/12 职场文书
春风化雨观后感
2015/06/11 职场文书
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python