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 Memcached + APC + 文件缓存封装实现代码
Mar 11 PHP
基于Zookeeper的使用详解
May 02 PHP
有关PHP性能优化的介绍
Jun 20 PHP
php中OR与|| AND与&amp;&amp;的区别总结
Oct 26 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
如何让CI框架支持service层
Oct 29 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
yii添删改查实例
Nov 16 PHP
CI框架扩展系统核心类的方法分析
May 23 PHP
PHP数组操作简单案例分析
Oct 15 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 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学习之变量的使用
2011/05/29 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
php图片上传类 附调用方法
2016/05/15 PHP
php数组和链表的区别总结
2019/09/20 PHP
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
Python Web版语音合成实例详解
2019/07/16 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
平面设计师的工作职责
2013/11/21 职场文书
营销总经理岗位职责
2014/02/02 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
优秀高中学生评语
2014/12/30 职场文书
节约用电通知
2015/04/25 职场文书
圣诞晚会主持词
2015/07/01 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
创业计划书之花店
2019/09/20 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
详解Python flask的前后端交互
2022/03/31 Python