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+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
php操作xml
Oct 27 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
PHP获得数组交集与差集的方法
Jun 10 PHP
PHP中类的自动加载的方法
Mar 17 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 PHP
如何在PHP中读写文件
Sep 07 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上的memcache和memcached两个pecl库
2010/03/29 PHP
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
python迭代器实例简析
2014/09/25 Python
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
python求最大连续子数组的和
2018/07/07 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python中字符串与编码示例代码
2019/05/20 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
我的理想演讲稿
2014/04/30 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
关于MySQL中explain工具的使用
2023/05/08 MySQL