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 相关文章推荐
php下实现伪 url 的超简单方法[转]
Sep 24 PHP
php小偷相关截取函数备忘
Nov 28 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
codeigniter自带数据库类使用方法说明
Mar 25 PHP
php中使用session防止用户非法登录后台的方法
Jan 27 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
php strftime函数获取日期时间(switch用法)
May 16 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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
PHP 获取文件权限函数介绍
2013/07/11 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
简明json介绍
2008/09/28 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python import用法以及与from...import的区别
2015/05/28 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
详解Python自建logging模块
2018/01/29 Python
python多线程之事件Event的使用详解
2018/04/27 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python写一个随机点名软件的实例
2019/11/28 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
四种会话跟踪技术
2015/05/20 面试题
应聘收银员个人的求职信
2013/11/30 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
教师见习报告范文
2014/11/03 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python
详解Java实践之建造者模式
2021/06/18 Java/Android