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 相关文章推荐
web方式ftp
Oct 09 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
PHP中的traits简单使用实例
May 13 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
php ajax实现文件上传进度条
Mar 29 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
CodeIgniter整合Smarty的方法详解
Aug 25 PHP
PHP模型Model类封装数据库操作示例
Mar 14 PHP
PHP匿名函数(闭包函数)详解
Mar 22 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP实现两种排课方式
Jun 26 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 PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
Python入门_浅谈for循环、while循环
2017/05/16 Python
详解python eval函数的妙用
2017/11/16 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
Python 编程速成(推荐)
2019/04/15 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
Delphi软件工程师试题
2013/01/29 面试题
应聘编辑职位自荐信范文
2014/01/05 职场文书
初一科学教学反思
2014/01/27 职场文书
小学生学习感言
2014/03/10 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
收款授权委托书
2014/10/02 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
2019年最新借条范本!
2019/07/08 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP