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 相关文章推荐
文章推荐系统(三)
Oct 09 PHP
COM in PHP (winows only)
Oct 09 PHP
一些常用的php简单命令代码集锦
Sep 24 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
Win7下手动安装apache2.2、php5.4笔记
Apr 03 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
php网页版聊天软件实现代码
Aug 12 PHP
PHP7匿名类用法分析
Sep 26 PHP
php脚本守护进程原理与实现方法详解
Jul 20 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
php实现jQuery扩展函数
2009/10/30 PHP
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
怎么清空javascript数组
2013/05/11 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
JS实现图片切换特效
2019/12/23 Javascript
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
python 爬取疫情数据的源码
2020/02/09 Python
Python日志syslog使用原理详解
2020/02/18 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
几个常见的软件测试问题
2016/09/07 面试题
秋游活动策划方案
2014/02/16 职场文书
个人贷款承诺书
2014/03/28 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书