PHP实现二维数组按某列进行排序的方法


Posted in PHP onNovember 18, 2016

本文实例讲述了PHP实现二维数组按某列进行排序的方法。分享给大家供大家参考,具体如下:

/*
* 二维数组 按某列排序
* array_multisort($arr1,$arr2)
* 手册 例子如下
*
*/
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
// 取得列的列表
foreach ($data as $key => $row) {
  $volume[$key] = $row['volume'];
  $edition[$key] = $row['edition'];
}
// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
/*************************************/
/* 从上面的例子不难看出,array_multisort()函数
* 是将每一个二维数组的列作为 一个参数进行排序
* 来达到整个数组的排序
*/
/*************************************/
function sigcol_arrsort($data,$col,$type=SORT_DESC){
  if(is_array($data)){
    $i=0;
    foreach($data as $k=>$v){
      if(key_exists($col,$v)){
        $arr[$i] = $v[$col];
        $i++;
      }else{
        continue;
      }
    }
  }else{
    return false;
  }
  array_multisort($arr,$type,$data);
  return $data;
}
print_r(sigcol_arrsort($data,'edition',SORT_DESC));
/*说白了 原理就是:
新数组  原二维数组
 2    array('volume' => 67, 'edition' => 2);
 1    array('volume' => 86, 'edition' => 1);
 6    array('volume' => 85, 'edition' => 6);
 2    array('volume' => 98, 'edition' => 2);
 6    array('volume' => 86, 'edition' => 6);
 7    array('volume' => 67, 'edition' => 7);
这两个数组的每一行都锁在一起,新数组一旦变动顺序,
那么就会连带每一行的二维数组也跟着变换顺序 ,即新数组为参照物
相当于查询子句中的 order by
*/

运行结果:

Array
(
  [0] => Array
    (
      [volume] => 67
      [edition] => 7
    )
  [1] => Array
    (
      [volume] => 85
      [edition] => 6
    )
  [2] => Array
    (
      [volume] => 86
      [edition] => 6
    )
  [3] => Array
    (
      [volume] => 67
      [edition] => 2
    )
  [4] => Array
    (
      [volume] => 98
      [edition] => 2
    )
  [5] => Array
    (
      [volume] => 86
      [edition] => 1
    )
)

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
抓取YAHOO股票报价的类
May 15 PHP
php设计模式 Adapter(适配器模式)
Jun 26 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
php获取图片信息的方法详解
Dec 10 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
php图像验证码生成代码
Jun 08 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
PHP二维数组去重实例分析
Nov 18 #PHP
浅谈php fopen下载远程文件的函数
Nov 18 #PHP
PHP实现的自定义数组排序函数与排序类示例
Nov 18 #PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 #PHP
PHP屏蔽关键字实现方法
Nov 17 #PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 #PHP
PHP解压ZIP文件到指定文件夹的方法
Nov 17 #PHP
You might like
Views rows style模板重写代码
2011/05/16 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
php中错误处理操作实例分析
2019/08/23 PHP
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
Angular(5.2->6.1)升级小结
2018/12/27 Javascript
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
python+flask实现API的方法
2018/11/21 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
python lxml中etree的简单应用
2019/05/10 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
Python中的面向接口编程示例详解
2021/01/17 Python
生物制药毕业生自荐信
2013/10/16 职场文书
倡议书格式
2014/04/14 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
九华山导游词
2015/02/03 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
活动新闻稿范文
2015/07/17 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python