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 相关文章推荐
实用函数7
Nov 08 PHP
PHP Pear 安装及使用
Mar 19 PHP
PHP 命名空间实例说明
Jan 27 PHP
php curl基本操作详解
Jul 23 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
php下Memcached入门实例解析
Jan 05 PHP
php编写的一个E-mail验证类
Mar 25 PHP
PHP解压ZIP文件到指定文件夹的方法
Nov 17 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
PHP使用Redis实现Session共享的实现示例
May 12 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二维数组的去重问题解析
2011/07/17 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
动态样式类封装JS代码
2009/09/02 Javascript
brook javascript框架介绍
2011/10/10 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
Python实现统计代码行的方法分析
2017/07/12 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
一文读懂Python 枚举
2020/08/25 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
程序员跳槽必看面试题总结
2013/06/28 面试题
高中毕业生生活的自我评价
2013/12/08 职场文书
会议接待欢迎词
2014/01/12 职场文书
大学生个人先进事迹材料范文
2014/05/03 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
社区班子对照检查材料
2014/08/27 职场文书
2016年元旦主持词
2015/07/06 职场文书
公司管理制度范本
2015/08/03 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python