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学习之PHP变量
Oct 09 PHP
php mssql 日期出现中文字符的解决方法
Mar 10 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php字符串按照单词进行反转的方法
Mar 14 PHP
PHP处理会话函数大总结
Aug 05 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
Feb 26 PHP
php正则判断是否为合法身份证号的方法
Mar 16 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
php实现登录页面的简单实例
Sep 29 PHP
PDO实现学生管理系统
Mar 21 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
图书管理程序(二)
2006/10/09 PHP
PHP4实际应用经验篇(1)
2006/10/09 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
推荐11个实用Python库
2015/01/23 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
Python对象属性自动更新操作示例
2018/06/15 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
keras中的History对象用法
2020/06/19 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
python 实现图片裁剪小工具
2021/02/02 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
大学生四年生活自我鉴定
2013/11/21 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
小学教育见习总结
2015/06/23 职场文书
运动会主持词大全
2015/07/02 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python