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 相关文章推荐
一个程序下载的管理程序(四)
Oct 09 PHP
深入HTTP响应状态码速查表的详解
Jun 07 PHP
php目录操作实例代码
Feb 21 PHP
PHP Curl出现403错误的解决办法
May 29 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 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 上传文件大小限制
2009/07/05 PHP
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
php递归函数怎么用才有效
2018/02/24 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
python使用urllib2提交http post请求的方法
2015/05/26 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python实现简易Web爬虫详解
2018/01/03 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
前台文员的岗位职责
2013/11/14 职场文书
汽车技术服务英文求职信范文
2014/01/02 职场文书
社会保险接收函
2014/01/12 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript