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 相关文章推荐
PHP 字符串编码截取函数(兼容utf-8和gb2312)
May 02 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
php解决约瑟夫环示例
Apr 09 PHP
php下pdo的mysql事务处理用法实例
Dec 27 PHP
php简单统计字符串单词数量的方法
Jun 19 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
php生成0~1随机小数的方法(必看)
Apr 05 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
Sep 01 PHP
php实现JWT验证的实例教程
Nov 26 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
php实现zip文件解压操作
2015/11/03 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
使用python Django做网页
2013/11/04 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
Django实现学员管理系统
2019/02/26 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
软件工程师岗位职责
2013/11/16 职场文书
揠苗助长教学反思
2014/02/04 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
餐厅总厨求职信
2014/03/04 职场文书
环境建设实施方案
2014/03/14 职场文书
护士求职信范文
2014/05/24 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
个人承诺书格式
2014/06/03 职场文书
运动会入场口号
2014/06/07 职场文书
公司职员入党自传书
2015/06/26 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
Django drf请求模块源码解析
2021/06/08 Python