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 fckeditor 调用的函数
Jun 21 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
php批量更改数据库表前缀实现方法
Oct 26 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
PHP实现动态web服务器方法
Jul 29 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
laravel 5.5 关闭token的3种实现方式
Oct 24 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编码规范之注释和文件结构说明
2010/07/09 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
python实现分页效果
2017/10/25 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Python实现常见的回文字符串算法
2018/11/14 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
关于python多重赋值的小问题
2019/04/17 Python
python实现抽奖小程序
2020/04/15 Python
python用for循环求和的方法总结
2019/07/08 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
python add_argument()用法解析
2020/01/29 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
市场营销毕业生自荐信
2013/11/23 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
银行贷款承诺书
2014/03/29 职场文书
红色影片观后感
2015/06/18 职场文书
同事欢送会致辞
2015/07/31 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android