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 18 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP之密码加密的几种方式
Jul 29 PHP
简单谈谈php延迟静态绑定
Jan 26 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
PHP构造二叉树算法示例
Jun 21 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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
初探PHP5
2006/10/09 PHP
如何去掉文章里的 html 语法
2006/10/09 PHP
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
yii2安装详细流程
2018/05/23 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
Python中按值来获取指定的键
2019/03/04 Python
详解Python正则表达式re模块
2019/03/19 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
Python Lambda函数使用总结详解
2019/12/11 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
自荐信封面
2013/12/04 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
本科应届生自荐信
2014/06/29 职场文书
项目申请汇报材料
2014/08/16 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
2016情人节宣传语
2015/07/14 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis