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中判断一个字符串包含另一个字符串的方法
Mar 19 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
php标签云的实现代码
Oct 10 PHP
php中session过期时间设置及session回收机制介绍
May 05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
php PDO属性设置与操作方法分析
Dec 27 PHP
php经典趣味算法实例代码
Jan 21 PHP
PHP 8新特性简介
Aug 18 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下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
javascript 三种编解码方式
2010/02/01 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
大学生新闻专业个人自我评价
2013/11/12 职场文书
公积金单位接收函
2014/01/11 职场文书
护士思想汇报
2014/01/12 职场文书
女方回门宴答谢词
2014/01/14 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
服务明星事迹材料
2014/12/29 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
ant design charts 获取后端接口数据展示
2022/05/25 Javascript