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 相关文章推荐
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
php生成图片缩略图的方法
Apr 07 PHP
PHP编写文件多服务器同步程序
Jul 02 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
PHP遍历目录文件的常用方法小结
Feb 03 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
Feb 04 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
php实现映射操作实例详解
Oct 02 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
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
在Vue中使用echarts的方法
2018/02/05 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
戴尔美国官网:Dell
2016/08/31 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
Ruby如何进行文件操作
2014/07/17 面试题
怎样客观的做好自我评价
2013/12/28 职场文书
运动会广播稿100字
2014/01/11 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
留学推荐信怎么写
2015/03/26 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技
Oracle锁表解决方法的详细记录
2022/06/05 Oracle