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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
一个php作的文本留言本的例子(二)
Oct 09 PHP
php SQL Injection with MySQL
Feb 27 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
PHP常用函数和常见疑难问题解答
Mar 05 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
php数组随机排序实现方法
Jun 13 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 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获取mysql数据库中的所有表名的代码
2011/04/23 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python标准库内置函数complex介绍
2014/11/25 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
python 基于opencv操作摄像头
2020/12/24 Python
python wsgiref源码解析
2021/02/06 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
怎样自定义一个异常类
2016/09/27 面试题
一套Delphi的笔试题一
2016/02/14 面试题
国际商务专业学生个人的自我评价
2013/09/28 职场文书
培训心得体会
2013/12/29 职场文书
无偿献血倡议书
2014/04/14 职场文书
辞职信标准格式
2015/02/27 职场文书
微观世界观后感
2015/06/10 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers
利用Redis实现点赞功能的示例代码
2022/06/28 Redis