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写的serv-u的web申请账号的程序
Oct 09 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
php中chdir()函数用法实例
Nov 13 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
Oct 08 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 PHP
PHP代码覆盖率统计详解
Jul 22 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程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
js玩一玩WSH吧
2007/02/23 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
Vue中如何实现proxy代理
2018/04/20 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
详解jquery和vue对比
2019/04/16 jQuery
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
python中xrange和range的区别
2014/05/13 Python
Python hashlib模块用法实例分析
2018/06/12 Python
手写一个python迭代器过程详解
2019/08/27 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
聊城大学毕业生自荐书
2014/02/01 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
中文专业求职信
2014/06/20 职场文书
热血教师观后感
2015/06/10 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python