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 相关文章推荐
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
PHP Undefined index报错的修复方法
Jul 17 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
May 04 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
帝国cms目录结构分享
Jul 06 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
yii2多图上传组件的使用教程
May 10 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 PHP
PHP扩展安装方法步骤解析
Nov 24 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
php自定义apk安装包实例
2014/10/20 PHP
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
python编程开发之类型转换convert实例分析
2015/11/13 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
python自动发送邮件脚本
2018/06/20 Python
python删除字符串中指定字符的方法
2018/08/13 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
python批量创建指定名称的文件夹
2019/03/21 Python
Python字节单位转换实例
2019/12/05 Python
Python chardet库识别编码原理解析
2020/02/18 Python
python实现图片转字符画
2021/02/19 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
专业技术职务聘任书
2014/03/29 职场文书
抽奖活动主持词
2014/03/31 职场文书
中学生英语演讲稿
2014/04/26 职场文书
护士感人事迹
2014/05/01 职场文书
医德医风自我评价
2014/09/19 职场文书
2015年个人现实表现材料
2014/12/10 职场文书
司机个人年终总结
2015/03/03 职场文书
行政复议决定书
2015/06/24 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL