php usort strc,php中usort自定义排序如何使用
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自定义排序如何使用相关推荐
- mysql 如何自定义排序_在MySQL中实现自定义排序顺序
要在MySQL中实现自定义排序顺序,您需要使用ORDER BY FIELD().让我们首先创建一个表-create table DemoTable -> ( -> Designation ...
- spreadsheet js中创建下拉列表_JS 中创建自定义排序方法
原文:https://www.youtube.com/watch?v=zVevl-K-m7Y 译者:前端小智 为了保证的可读性,本文采用意译而非直译. 想优质文章请猛戳GitHub博客,一年百来篇优质 ...
- python3 自定义排序_Python3中的自定义排序
我开始学习python3. 我想知道如何执行自定义排序.例如,我可能希望按照以下方式对动物列表进行排序:先按字符升序排序,然后按长度降序排序,然后按字母数字升序排序.在 一个由"蚂蚁&quo ...
- python中使用operator.itemgetter()函数实现excel的自定义排序功能
使用工具为vscode,python预处理csv数据,先将其转化为list,如图 这里是一个[ [x1,x2,x3...],[y1,y2,y3...],... ]格式的嵌套数组,那么如何将其先按第一列 ...
- FineReport-公式实现自定义排序
当想要横向扩展排序时,在数据集中sql排序后可能改变竖向顺序,需要在模板中实现自定义排序 1.新建数据集,单独作为排序的数据 2.在横线扩展中设置公式排序 inarray(C2,顺序.select(D ...
- php位值,解决 PHP 中 usort 在值相同时改变原始位置的问题
从 PHP 4.1.0 后,usort 在比较的值相同时,原始位置可能会改变,文档中是这样说的: If two members compare as equal, their order in the ...
- 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...
- .NET/C#中对自定义对象集合进行自定义排序的方法
一个集合可否排序,要看系统知不知道排序的规则,像内建的系统类型,int ,string,short,decimal这些,系统知道怎么排序,而如果一个集合里面放置的是自定义类型,比如自己定义了一个Car ...
- pandas dataframe中的列进行重新排序、倒排、正排、自定义排序详解及实践
pandas dataframe中的列进行重新排序,pandas dataframe列重排.倒排.正排.自定义排序详解及实践 实施数据构建: import pandas as pd import nu ...
最新文章
- pandas 的describe的参数含义
- caffe之mac下环境搭建
- J2EE项目工具集(转)
- select选择框变得可以输入、编辑
- Docker-compose 安装配置 Nginx PHP MySQL Laravel
- LeetCode每日一题 416. 分割等和子集
- 无连接网络通信程序UDP
- mysql explain insert_简述Mysql Explain 命令
- linux怎么设置屏显示同步,linux设置同步时间
- 21点游戏java实现
- 执行quartz报错java.lang.NoClassDefFoundError: javax/transaction/UserTransaction
- Microsoft Silverlight 4 Tools for Visual Studio 2010
- 矩阵卷积运算过程讲解
- YDOOK:ANSYS 进行电磁场仿真的第三步:施加边界条件和载荷
- VS2017调用Matlab2016b进行绘图
- Empty suite
- k8s可视化管理工具
- element UI 学习
- RuntimeError: Sizes of tensors must match except in dimension 1. Got 61 and 60 in dimension 2
- 12.1 Prim算法
热门文章
- ios利用block实现回调示例
- 【4】青龙面板系列教程之QQ通知机器人XDD-plus安装
- 67 Airflow配置MySQL数据库和LocalExecutor
- grep零宽断言正则表达式
- CentOS镜像下载地址
- mysql表索引坏掉处理_一个mysql表索引被破坏的问题及解决
- mac版python连接mysql_Mac下Python连接MySQL · BlBana’s BlackHouse
- mysql 同步日志文件_mysql 5.5 中对SLAVE relay-log相关日志文件同步的强化
- java基盘JavaScript_JavaWeb学习:SSH整合(无障碍整合)
- Redis入门教程(一)