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的类 功能齐全的发送邮件类
Oct 09 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 PHP
php笔记之:初探PHPcms模块开发介绍
Apr 26 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
Jul 01 PHP
解析php中curl_multi的应用
Jul 17 PHP
php实现微信公众平台账号自定义菜单类
Dec 02 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 PHP
PHP+MySQL实现消息队列的方法分析
May 09 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 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设计模式之简单投诉页面实例
2016/02/24 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
js编写简易的计算器
2020/07/29 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
python如何删除文件中重复的字段
2019/07/16 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
致裁判员加油稿
2014/02/08 职场文书
联谊会主持词
2014/03/26 职场文书
自主招生推荐信范文
2014/05/10 职场文书
优秀家长自荐材料
2014/08/26 职场文书
法定代表人授权委托书
2014/09/19 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
旷工检讨书1000字
2015/01/01 职场文书
出国留学自荐信模板
2015/03/06 职场文书
收入证明申请书
2015/06/12 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python
利用Redis实现点赞功能的示例代码
2022/06/28 Redis