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小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
笑谈配置,使用Smarty技术
Jan 04 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
Jan 27 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
Jul 08 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
php提交post数组参数实例分析
Dec 17 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
PHP在Web开发领域的优势
2006/10/09 PHP
实用函数10
2007/11/08 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
php工具型代码之印章抠图
2018/07/18 PHP
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
Python之PyUnit单元测试实例
2014/10/11 Python
Windows下python3.6.4安装教程
2018/07/31 Python
python如何实现单链表的反转
2020/02/10 Python
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
教师的实习鉴定
2013/12/15 职场文书
初一家长会邀请函
2014/01/31 职场文书
法制宣传教育方案
2014/05/09 职场文书
远程培训的心得体会
2014/09/01 职场文书
2015教师年度考核评语
2015/03/25 职场文书
同学聚会通知书
2015/04/20 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL