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 session有效期session.gc_maxlifetime
Apr 20 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
php文本转图片自动换行的方法
Mar 13 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
PHP汉字转换拼音的函数代码
Dec 30 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 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
preg_match_all使用心得分享
2014/01/31 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHP使用函数用法详解
2018/09/30 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
Js组件的一些写法
2010/09/10 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
python挖矿算力测试程序详解
2019/07/03 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
详解Python中的Lock和Rlock
2021/01/26 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
2014迎接教师节演讲稿
2014/09/10 职场文书
股东授权委托书范本
2014/09/13 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
PHP 时间处理类Carbon
2022/05/20 PHP