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 相关文章推荐
smtp邮件发送一例
Oct 09 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
php引用传值实例详解学习
Nov 06 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
PHP中的流(streams)浅析
Jul 02 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
orm获取关联表里的属性值
Apr 17 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
PHP简单实现防止SQL注入的方法
Mar 13 PHP
PHP使用Redis实现Session共享的实现示例
May 12 PHP
详解Go与PHP的语法对比
May 29 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中的this,self和parent关键字详解教程
2007/03/19 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
jQuery 加上最后自己的验证
2009/11/04 Javascript
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
python实现SMTP邮件发送功能
2020/06/16 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
优秀演讲稿范文
2013/12/29 职场文书
精彩自我鉴定
2014/01/16 职场文书
网络技术专业求职信
2014/02/18 职场文书
建筑工地大门标语
2014/06/18 职场文书
科技工作者先进事迹
2014/08/16 职场文书
婚庆答谢词
2015/01/04 职场文书
军训决心书范文
2015/09/22 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android