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实现小型站点广告管理(修正版)
Oct 09 PHP
PHP 事件机制(2)
Mar 23 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
PHP迭代器和迭代的实现与使用方法分析
Apr 19 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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的开合式多级菜单程序
2006/10/09 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
js实现拖拽功能
2017/03/01 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
Python中的zip函数使用示例
2015/01/29 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
Python实现基于POS算法的区块链
2018/08/07 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
后备干部考察材料
2014/02/12 职场文书
档案保密承诺书
2014/06/03 职场文书
2014年财政工作总结
2014/12/10 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
解除处分决定书
2015/06/25 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers