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的开发框架的现状和展望
Mar 16 PHP
深入解析php之sphinx
May 15 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 PHP
PHP删除数组中空值的方法介绍
Apr 14 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
Apr 20 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
一个实用的php验证码类
Jul 06 PHP
php实现socket推送技术的示例
Dec 20 PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 PHP
PHP实现百度人脸识别
May 06 PHP
浅析PHP echo 和 print 语句
Jun 30 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(5) 类和对象
2010/02/16 PHP
解析php中curl_multi的应用
2013/07/17 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
Python模块学习 re 正则表达式
2011/05/19 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
numpy中矩阵合并的实例
2018/06/15 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python----数据预处理代码实例
2019/03/20 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
采购文员岗位职责
2013/11/20 职场文书
感恩节活动方案
2014/01/27 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
文秘专业应届生求职信
2014/05/26 职场文书