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面向对象编程快速入门
Oct 09 PHP
PHP 批量删除 sql语句
Jun 05 PHP
利用PHP实现图片等比例放大和缩小的方法详解
Jun 06 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
Jun 19 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
CI框架中cookie的操作方法分析
Dec 12 PHP
php需登录的文件上传管理系统
Mar 21 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 PHP
Referer原理与图片防盗链实现方法详解
Jul 03 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
用PHP的ob_start() 控制您的浏览器cache
2009/08/03 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
python 自动批量打开网页的示例
2019/02/21 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
Python列表对象实现原理详解
2019/07/01 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
社区中秋节活动方案
2014/01/29 职场文书
业务部主管岗位职责
2014/01/29 职场文书
辞职书格式样本
2015/02/26 职场文书
同学聚会祝酒词
2015/08/10 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技