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 相关文章推荐
一个用于网络的工具函数库
Oct 09 PHP
PHP 和 XML: 使用expat函数(二)
Oct 09 PHP
PHP 进程锁定问题分析研究
Nov 24 PHP
php上传文件的增强函数
Jul 21 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
php中使用url传递数组的方法
Feb 11 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 PHP
php设置页面超时时间解决方法
Sep 22 PHP
PHP中多线程的两个实现方法
Oct 14 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
php表单处理操作
Nov 16 PHP
如何利用PHP实现上传图片功能详解
Sep 24 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读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
jQuery 使用手册(四)
2009/09/23 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
Javascript的this用法
2017/01/16 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
python命令行参数用法实例分析
2019/06/25 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
python实现飞船大战
2020/04/24 Python
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
应届生护士求职信
2013/11/01 职场文书
《秋游》教学反思
2014/04/24 职场文书
python游戏开发Pygame框架
2022/04/22 Python
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL