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 相关文章推荐
一次编写,随处运行
Oct 09 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
php中用socket模拟http中post或者get提交数据的示例代码
Aug 08 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
php中explode函数用法分析
Nov 15 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
May 09 PHP
浅析PHP7新功能及语法变化总结
Jun 17 PHP
thinkphp 验证码 的使用小结
May 07 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 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递归创建目录的方法
2015/02/02 PHP
php算法实例分享
2015/07/14 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
原生js实现五子棋游戏
2020/05/28 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
python处理圆角图片、圆形图片的例子
2014/04/25 Python
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Python中字典的基础知识归纳小结
2015/08/19 Python
windows系统下Python环境搭建教程
2017/03/28 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
explicit和implicit的含义
2012/11/15 面试题
运动会稿件100字
2014/02/21 职场文书
现场施工员岗位职责
2014/03/10 职场文书
公司经理任命书
2014/06/05 职场文书
土地转让协议书
2014/09/27 职场文书
2014年消防工作总结
2014/11/21 职场文书