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数据缓存技术
Feb 14 PHP
php实现读取内存顺序号
Mar 29 PHP
php身份证号码检查类实例
Jun 18 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
Nov 05 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
PHP设计模式之注册树模式分析
Jan 26 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 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实现cookie跨域session共享的方法分析
2019/08/23 PHP
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python实现数组插入新元素的方法
2015/05/22 Python
python 的列表遍历删除实现代码
2020/04/12 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
python 读入多行数据的实例
2018/04/19 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Python实现注册、登录小程序功能
2018/09/21 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
python中threading开启关闭线程操作
2020/05/02 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
大学系主任推荐信范文
2013/12/24 职场文书
争先创优心得体会
2014/09/12 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
教师反邪教心得体会
2016/01/15 职场文书
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers