php中usort自定义排序如何使用

一、总结

一句话总结:多写一个规则函数,而这个函数的写法和普通函数一样,调用的时候规则函数用函数名的字符串。

1、用户自定义规则函数有哪三个?

usort — 使用用户自定义的比较函数对数组中的值进行排序

uksort — 使用用户自定义的比较函数对数组中的键名进行排序

uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

2、规则函数怎么写?

和普通函数的写法一样,和c++中规则函数的写法也一样

3、usort()如何调用规则函数?

函数名的字符串

uasort($arr,'compare_arr');

二、php中usort自定义排序

usort— 使用用户自定义的比较函数对数组中的值进行排序

uksort— 使用用户自定义的比较函数对数组中的键名进行排序

uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

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']

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'].'
';

}

手册里的自定义排序类:

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 usort strc,php中usort自定义排序如何使用相关推荐

  1. mysql 如何自定义排序_在MySQL中实现自定义排序顺序

    要在MySQL中实现自定义排序顺序,您需要使用ORDER BY FIELD().让我们首先创建一个表-create table DemoTable -> ( -> Designation  ...

  2. spreadsheet js中创建下拉列表_JS 中创建自定义排序方法

    原文:https://www.youtube.com/watch?v=zVevl-K-m7Y 译者:前端小智 为了保证的可读性,本文采用意译而非直译. 想优质文章请猛戳GitHub博客,一年百来篇优质 ...

  3. python3 自定义排序_Python3中的自定义排序

    我开始学习python3. 我想知道如何执行自定义排序.例如,我可能希望按照以下方式对动物列表进行排序:先按字符升序排序,然后按长度降序排序,然后按字母数字升序排序.在 一个由"蚂蚁&quo ...

  4. python中使用operator.itemgetter()函数实现excel的自定义排序功能

    使用工具为vscode,python预处理csv数据,先将其转化为list,如图 这里是一个[ [x1,x2,x3...],[y1,y2,y3...],... ]格式的嵌套数组,那么如何将其先按第一列 ...

  5. FineReport-公式实现自定义排序

    当想要横向扩展排序时,在数据集中sql排序后可能改变竖向顺序,需要在模板中实现自定义排序 1.新建数据集,单独作为排序的数据 2.在横线扩展中设置公式排序 inarray(C2,顺序.select(D ...

  6. php位值,解决 PHP 中 usort 在值相同时改变原始位置的问题

    从 PHP 4.1.0 后,usort 在比较的值相同时,原始位置可能会改变,文档中是这样说的: If two members compare as equal, their order in the ...

  7. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  8. .NET/C#中对自定义对象集合进行自定义排序的方法

    一个集合可否排序,要看系统知不知道排序的规则,像内建的系统类型,int ,string,short,decimal这些,系统知道怎么排序,而如果一个集合里面放置的是自定义类型,比如自己定义了一个Car ...

  9. pandas dataframe中的列进行重新排序、倒排、正排、自定义排序详解及实践

    pandas dataframe中的列进行重新排序,pandas dataframe列重排.倒排.正排.自定义排序详解及实践 实施数据构建: import pandas as pd import nu ...

最新文章

  1. pandas 的describe的参数含义
  2. caffe之mac下环境搭建
  3. J2EE项目工具集(转)
  4. select选择框变得可以输入、编辑
  5. Docker-compose 安装配置 Nginx PHP MySQL Laravel
  6. LeetCode每日一题 416. 分割等和子集
  7. 无连接网络通信程序UDP
  8. mysql explain insert_简述Mysql Explain 命令
  9. linux怎么设置屏显示同步,linux设置同步时间
  10. 21点游戏java实现
  11. 执行quartz报错java.lang.NoClassDefFoundError: javax/transaction/UserTransaction
  12. Microsoft Silverlight 4 Tools for Visual Studio 2010
  13. 矩阵卷积运算过程讲解
  14. YDOOK:ANSYS 进行电磁场仿真的第三步:施加边界条件和载荷
  15. VS2017调用Matlab2016b进行绘图
  16. Empty suite
  17. k8s可视化管理工具
  18. element UI 学习
  19. RuntimeError: Sizes of tensors must match except in dimension 1. Got 61 and 60 in dimension 2
  20. 12.1 Prim算法

热门文章

  1. ios利用block实现回调示例
  2. 【4】青龙面板系列教程之QQ通知机器人XDD-plus安装
  3. 67 Airflow配置MySQL数据库和LocalExecutor
  4. grep零宽断言正则表达式
  5. CentOS镜像下载地址
  6. mysql表索引坏掉处理_一个mysql表索引被破坏的问题及解决
  7. mac版python连接mysql_Mac下Python连接MySQL · BlBana’s BlackHouse
  8. mysql 同步日志文件_mysql 5.5 中对SLAVE relay-log相关日志文件同步的强化
  9. java基盘JavaScript_JavaWeb学习:SSH整合(无障碍整合)
  10. Redis入门教程(一)