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同时支持GIF、png、JPEG
Oct 09 PHP
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
CI框架Session.php源码分析
Nov 03 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
php实现搜索类封装示例
Mar 31 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
PHP调用其他文件中的类
Apr 02 PHP
PHP实现Huffman编码/解码的示例代码
Apr 20 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 PHP
浅谈PHP中的那些魔术常量
Dec 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
一些星际专用术语解释
2020/03/04 星际争霸
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
几种响应式文字详解
2017/05/19 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
今天,小程序正式支持 SVG
2019/04/20 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
Django密码存储策略分析
2020/01/09 Python
Pycharm安装python库的方法
2020/11/24 Python
浅析python实现动态规划背包问题
2020/12/31 Python
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
师范教师毕业鉴定
2014/01/13 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
基于Python实现股票收益率分析
2022/04/02 Python
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers