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上传图片、删除图片实现代码
May 12 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
ThinkPHP关联模型操作实例分析
Sep 23 PHP
php while循环得到循环次数
Oct 26 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
php使用curl获取https请求的方法
Feb 11 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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 设计模式之 工厂模式
2008/12/19 PHP
PHP开发需要注意的安全问题
2010/09/01 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
Python之列表实现栈的工作功能
2019/01/28 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
药店主任岗位责任制
2014/02/10 职场文书
经销商订货会主持词
2014/03/27 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
农村党支部承诺书
2015/04/30 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
Java实现带图形界面的聊天程序
2022/06/10 Java/Android