PHP中数组的分组排序实例


Posted in PHP onJune 01, 2014

PHP的数组,数组中的内容大致如下:

$list = array(
    array(2,3,5),
    array(2,5,24),
    array(3,8,6),
    array(3,2,10),
    array(4,7,20),
    array(4,1,15),
    array(6,4,10),
    array(7,9,20),
    );

为了方便表达,我把3列数字分别称为,ABC三列

需求:默认以A列排序为主,如果A列相同则以C列倒序排列相同的元素。B列其实没有参与排序,但是在实际运用中有用,所以我也写出来了。

方法一:

$a = $c = array();
foreach($list as $val){
    $a[] = $val[0]; //a列
    $c[] = $val[2]; //c列
}
//安装a列升序,然后安装b列降序 , 类似sql,orderby a asc,b desc
array_multisort($a,SORT_ASC , $c, SORT_DESC, $list);
print_r($list);

方法二:
for($j=0;$j<count($list);$j++) {
    for($i=count($list)-1;$i>$j;$i--){
        if($list[$i][0] == $list[$i-1][0] && $list[$i][2] > $list[$i-1][2])
            list($list[$i],$list[$i-1]) = array($list[$i-1],$list[$i]);
    }
}
PHP 相关文章推荐
10条PHP编程习惯助你找工作
Sep 29 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
PHP获取文件绝对路径的代码(上一级目录)
May 29 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
PHP列出MySQL中所有数据库的方法
Mar 12 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
Feb 25 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 PHP
PHP实现考试倒计时功能代码
Apr 16 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 #PHP
PHP Curl出现403错误的解决办法
May 29 #PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 #PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 #PHP
CI框架开发新浪微博登录接口源码完整版
May 28 #PHP
PHP+javascript制作带提示的验证码源码分享
May 28 #PHP
微信支付开发教程(一)微信支付URL配置
May 28 #PHP
You might like
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php7基于递归实现删除空文件夹的方法示例
2017/06/15 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
JavaScript中实现块作用域的方法
2010/04/01 Javascript
js 小贴士一星期合集
2010/04/07 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
Python基类函数的重载与调用实例分析
2015/01/12 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
python中setuptools的作用是什么
2020/06/19 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
2014年创卫实施方案
2014/02/18 职场文书
管理标语大全
2014/06/24 职场文书
法人授权委托书
2014/09/16 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
二十年同学聚会感言
2015/07/30 职场文书
家庭聚会祝酒词
2015/08/11 职场文书