PHP实现的自定义数组排序函数与排序类示例


Posted in PHP onNovember 18, 2016

本文实例讲述了PHP实现的自定义数组排序函数与排序类。分享给大家供大家参考,具体如下:

/*
* 二维数组自定义排序函数
* uasort($arr,function_name)
*
**/
$arr = array(
  array('a'=>1,'b'=>'c'),
  array('a'=>4,'b'=>'a'),
  array('a'=>5,'b'=>'g'),
  array('a'=>7,'b'=>'f'),
  array('a'=>6,'b'=>'e')
);
function compare_arr($x,$y){
  if($x['b']<$y['b']){
    return -1;
  }else if($x['b']>$y['b']){
    return 1;
  }else{
    return 0;
  }
}
uasort($arr,'compare_arr');
foreach($arr as $a){
  echo $a['a'].'=>'.$a['b'].'<br/>';
}

手册里的自定义排序类:

class multiSort
{
   var $key;  //key in your array
   //排序函数 参数依次是 数组 待排列索引 排序类型
   function run ($myarray, $key_to_sort, $type_of_sort = '')
   {
     $this->key = $key_to_sort;
     if ($type_of_sort == 'desc')
       uasort($myarray, array($this, 'myreverse_compare'));
     else
       uasort($myarray, array($this, 'mycompare'));
     return $myarray;
   }
   //正序
   function mycompare($x, $y)
   {
     if ( $x[$this->key] == $y[$this->key] )
       return 0;
     else if ( $x[$this->key] < $y[$this->key] )
       return -1;
     else
       return 1;
   }
   //逆序
   function myreverse_compare($x, $y)
   {
     if ( $x[$this->key] == $y[$this->key] )
       return 0;
     else if ( $x[$this->key] > $y[$this->key] )
       return -1;
     else
       return 1;
   }
}

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

PHP 相关文章推荐
新安装的MySQL数据库需要注意的安全知识
Jul 30 PHP
php 一元分词算法
Nov 30 PHP
整理的9个实用的PHP库简介和下载
Nov 09 PHP
php XPath对XML文件查找及修改实现代码
Jul 27 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
基于php split()函数的用法详解
Jun 05 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
PHP实现多图片上传类实例
Jul 26 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
php中使用gd库实现远程图片下载实例
May 12 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 #PHP
PHP屏蔽关键字实现方法
Nov 17 #PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 #PHP
PHP解压ZIP文件到指定文件夹的方法
Nov 17 #PHP
PHP版单点登陆实现方案的实例
Nov 17 #PHP
php实现URL加密解密的方法
Nov 17 #PHP
PHP读取zip文件的方法示例
Nov 17 #PHP
You might like
一个ftp类(ini.php)
2006/10/09 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
2017/05/12 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
python使用多线程不断刷新网页的方法
2015/03/31 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
django+echart数据动态显示的例子
2019/08/12 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
生物技术毕业生自荐信
2013/10/23 职场文书
40岁生日感言
2014/02/15 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang