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 相关文章推荐
PHP5.3.1 不再支持ISAPI
Jan 08 PHP
ajax+php打造进度条代码[readyState各状态说明]
Apr 12 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
Mar 12 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 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 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
php实现的SESSION类
2014/12/02 PHP
javascript模拟订火车票和退票示例
2014/04/24 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
快速查询Python文档方法分享
2017/12/27 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
python实现五子棋小程序
2019/06/18 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
幼儿园庆六一活动方案
2014/03/06 职场文书
成龙洗发水广告词
2014/03/14 职场文书
政府门卫岗位职责
2014/04/29 职场文书
农业开发项目建议书
2014/05/16 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
python状态机transitions库详解
2021/06/02 Python
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers