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 相关文章推荐
在JavaScript中调用php程序
Mar 09 PHP
php 变量定义方法
Jun 14 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
深入PHP数据加密详解
Jun 18 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
php显示时间常用方法小结
Jun 05 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 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 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
php实现微信模板消息推送
2018/03/30 PHP
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
Underscore源码分析
2015/12/30 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
如何使用python操作vmware
2019/07/27 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
python打包多类型文件的操作方法
2020/09/21 Python
java字符串格式化输出实例讲解
2021/01/06 Python
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
软件测试面试题
2015/10/21 面试题
学生自我鉴定范文
2013/10/04 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
会计学专业求职信
2014/07/17 职场文书
关于诚信的活动方案
2014/08/18 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书