php一维二维数组键排序方法实例总结


Posted in PHP onNovember 13, 2014

本文实例总结了php一维二维数组键排序方法。分享给大家供大家参考。具体方法如下:

在php中数组排序一直是一个老生常谈的问题,下面我们来集中讲一下关于在php中一维数组与二维数组排序的实现程序,相信对大家有一定的参考借鉴价值.

功能:对数组进行重新排序.

说明:冒泡排序 (一维数组)(二维数组某个健排序)

两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止

设想被排序的数组R[1..N] 垂直竖立,将每个数据元素看作有重量的气泡,从下往上扫描数组,凡扫描违反原则的轻气泡,就使其向上”漂浮”.如此反复进行.直到最后任何两个气都是轻者在上,重者在下为止.

/**

     * 冒泡排序 (一维数组)(二维数组某个健排序)

     * 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止

     * 设想被排序的数组R[1..N] 垂直竖立,将每个数据元素看作有重量的气泡,从下往上扫描数组,凡扫描违反原则的轻气泡,就使其向上"漂浮".如此反复进行.

     * 直到最后任何两个气都是轻者在上,重者在下为止.

 */

function bubble_sort($array,$key=null) {

        $count = count($array);

        if($count < 0) {

            return false;

        }

        for($i = 0; $i < $count; $i++) {

            for($j = $count - 1; $j > $i; $j--) {

                if($key && isset($array[$key])){//二维数组健存在

                    if($array[$j][$key] < $array[$j - 1][$key]) {

                        $tmp = $array[$j];

                        $array[$j] = $array[$j - 1];

                        $array[$j - 1] = $tmp;

                    }

                }else{ //一维数组

                    if($array[$j] < $array[$j - 1]) {

                        $tmp = $array[$j];

                        $array[$j] = $array[$j - 1];

                        $array[$j - 1] = $tmp;

                    }

                }

            }

        }

        return $array;

}

array_multisort排序使用方法

array_multisort() 对二位数组按照指定键值排序的使用方法

本例中定义了一个名为 $data 的二维数组,然后对它进行排序,方法如下

$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); 

print_r($data);

执行后打印结果如下:

Array 

( 

    [0] => Array 

        ( 

            [volume] => 98 

            [edition] => 2 

        ) 

    [1] => Array 

        ( 

            [volume] => 86 

            [edition] => 1 

        ) 

    [2] => Array 

        ( 

            [volume] => 86 

            [edition] => 6 

          

    [3] => Array 

        ( 

            [volume] => 85 

            [edition] => 6 

        ) 

    [4] => Array 

        ( 

            [volume] => 67 

            [edition] => 2 

        ) 

    [5] => Array 

        ( 

            [volume] => 67 

            [edition] => 7 

        ) 

)

一维数组排序我们只要使用sort()就可以了,相对应的 asort($arr); 函数,是按键值排序,且维持原有的键值关系。

同样原理,rsort(); arsort(); krsort(); 函数除了排序是按降序排列外,其它与sort(); rsort(); ksort(); 相同。

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
认识并使用PHP超级全局变量
Jan 26 PHP
PHP foreach循环使用详解与实例代码
May 08 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
PHP排序算法的复习和总结
Feb 15 PHP
php过滤XSS攻击的函数
Nov 12 PHP
ThinkPHP空模块和空操作详解
Jun 30 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
Sep 29 PHP
解析WordPress中函数钩子hook的作用及基本用法
Dec 22 PHP
PHP信号量基本用法实例详解
Feb 12 PHP
PHP使用file_get_content设置头信息的方法
Feb 14 PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 PHP
php生成随机颜色的方法
Nov 13 #PHP
javascript some()函数用法详解
Nov 13 #PHP
php获取随机数组列表的方法
Nov 13 #PHP
php中chdir()函数用法实例
Nov 13 #PHP
php之readdir函数用法实例
Nov 13 #PHP
dedecms中使用php语句指南
Nov 13 #PHP
php 使用file_get_contents读取大文件的方法
Nov 13 #PHP
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
动手学习无线电
2021/03/10 无线电
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python3.7安装keras和TensorFlow的教程图解
2020/06/18 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
办公室副主任岗位职责
2013/11/25 职场文书
销售求职信范文
2014/05/26 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
基层党建工作简报
2015/07/21 职场文书