php函数usort使用方法
在 PHP 中,usort() 函数用于对数组进行排序,它允许你使用自定义的比较函数来确定元素的顺序。以下是 usort() 函数的使用方法:

usort(array &$array, callable $cmp_function): bool
参数说明:
$array:要排序的数组,是传入函数的引用。$cmp_function:自定义的比较函数,用于确定元素的顺序。
返回值:
如果成功排序数组,则返回 true,否则返回 false。
使用 usort() 函数时,你需要提供一个自定义的比较函数,该函数定义了元素之间的排序规则。比较函数应该接受两个参数,即要比较的两个元素,并返回一个整数值,表示它们的相对顺序。
下面是一个示例,演示如何使用 usort() 函数对数组进行排序:
// 自定义比较函数
function compare($a, $b) {// 按照字符串长度进行排序if (strlen($a) < strlen($b)) {return -1;} elseif (strlen($a) > strlen($b)) {return 1;} else {return 0;}
}// 要排序的数组
$array = array("apple", "banana", "cherry", "date");// 使用 usort 函数进行排序
usort($array, "compare");// 打印排序后的数组
print_r($array);
输出结果:
Array
([0] => date[1] => apple[2] => banana[3] => cherry
)
在上面的示例中,我们定义了一个名为 compare 的自定义比较函数,它根据字符串的长度确定元素的顺序。然后,我们使用 usort() 函数将数组 $array 按照该比较函数进行排序。最后,我们打印排序后的数组,得到了按照字符串长度递增的顺序排列的元素。
这里再举一个稍微复杂一点的数组排序的列子:
如何将一个二维数组安某一列的值在另一个一维数组的顺序排序:
$arra = ['5413_BJ063','5408_BJ062','5278_BJ061','5043_BJ059','5018_BJ058','2256_BJ004','2264_BJ012','2274_BJ022'];$arrb =[
['name'=>'11111','sn'=>'5018_BJ058','prrice'=>30],
['name'=>'22222','sn'=>'5413_BJ063','prrice'=>40],
['name'=>'33333','sn'=>'2256_BJ004','prrice'=>20],
['name'=>'4444','sn'=>'5018_BJ058','prrice'=>10],
['name'=>'5555','sn'=>'2264_BJ012','prrice'=>5],
['name'=>'6666','sn'=>'5043_BJ059','prrice'=>25],
['name'=>'77777','sn'=>'5018_BJ058','prrice'=>12],
['name'=>'88888','sn'=>'2274_BJ022','prrice'=>60],
['name'=>'99999','sn'=>'5408_BJ062','prrice'=>70],
]foreach(array_reverse($arra) as $itemv){$GLOBALS['itemv'] = $itemv;usort($dgtop_goods, function ($a, $b) {if ($b['goods_sn'] == $GLOBALS['itemv']) {return 1;};return $a['goods_sn'] == $GLOBALS['itemv'] ? 0 : 0;});
}
这种一般用在把查出来的文章或商品按指定的顺序排序的情况,非常有用,实现时用到了php的两个函数
array_reverse
usort
期望对大家有用
相关文章:
php函数usort使用方法
在 PHP 中,usort() 函数用于对数组进行排序,它允许你使用自定义的比较函数来确定元素的顺序。以下是 usort() 函数的使用方法: usort(array &$array, callable $cmp_function): bool参数说明: $array:要排序的数…...
35.浅谈贪心算法
概述 相信大家或多或少都对贪心算法有所耳闻,今天我们从一个应用场景展开 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区都可以接收到信号? 广播台覆盖地区k1北京、上海、天津…...
QT时间日期定时器类(1.QDate类)【QT基础入门 Demo篇】
使用时候需要包含头文件 创建一个 QDate 实例 设置 QDate 的日期 获取 QDate 的日期 获取当前是周几 判断 QDate 的有效性 格式化 QDate 的显示字符串 计算 QDate 的差值 QDate显示格式 年月日转换时间戳时间戳转换年月日 QDate相关…...
记一次实战案例
1、目标:inurl:news.php?id URL:https://www.lghk.com/news.php?id5 网站标题:趋时珠宝首饰有限公司 手工基础判断: And用法 and 11: 这个条件始终是为真的, 也就是说, 存在SQL注入的话, 这个and 11的返回结果必定是和正常页…...
Serv-U FTP服务器结合cpolar内网穿透实现共享文件并且外网可远程访问——“cpolar内网穿透”
文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 科技日益发展的今天,移动电子设备似乎成了我们生活的主角,智能…...
EasyWindow - Android 悬浮窗框架
官网 https://github.com/getActivity/EasyWindow 项目介绍 本框架意在解决一些极端需求,如果是普通的 Toast 封装推荐使用 Toaster 集成步骤 如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入 allprojects {repositories {/…...
tp5连接多个数据库
一、如果你的主数据库配置文件都在config.php里 直接在config.php中中定义db2: 控制器中打印一下: <?php namespace app\index\controller; use think\Controller; use think\Db; use think\Request; class Index extends Controller {public fun…...
SAP PO运维(一):系统概览异常处理
打开SAP PIPO Netweaver Administration界面,系统概览下显示异常: 参考SAP note: 2577844 - AS Java Monitoring and Logging parametrization best practice service/protectedwebmethods = SDEFAULT -GetVersionInfo -GetAccessPointList -ListLogFiles -ReadLogFile -Para…...
安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配
近日,杭州安恒信息技术股份有限公司(以下简称“安恒信息”)签署了 CLA(Contributor License Agreement,贡献者许可协议),正式加入龙蜥社区(OpenAnolis),并成为…...
maven找不到jar包
配置settings.xml文件之后出现报错找不到jar包 先改maven设置: 然后在重新清理构建项目: 可以通过执行以下命令清理本地 Maven 仓库 mvn dependency:purge-local-repository...
MySQL的数据目录
文章目录 MySQL的数据目录1. MYSQL目录结构2. 数据库与文件系统的关系2.1 查看默认数据库2.2 数据库在文件系统中的表示2.1.1 MyISAM存储引擎模式2.1.2 InnoDB存储引擎模式 2.3 视图在文件系统中的表示2.4 小结 MySQL的数据目录 1. MYSQL目录结构 查询主要目录结构:…...
详解MySQL索引+面试题
前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。 😇😇😇有兴趣的话关注博主一起学习,一起进步吧! 一、索引概述…...
设计模式:桥接器模式(C++实现)
桥接器模式(Bridge Pattern)是一种结构设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。桥接器模式通常用于需要在多个维度上扩展和变化的情况下,将抽象和实现解耦。 以下是一个简单的C桥接器模式的示例&a…...
公网远程访问GeoServe Web管理界面【内网穿透】
文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对要素数据进行更新、删除、插入…...
AIMS医院手术麻醉信息系统全套源码,自主版权,开箱即用
手术麻醉临床信息系统有着完善的临床业务功能,能够涵盖整个围术期的工作,能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施,能够规范麻醉科的工作流程,实现麻醉手术过程的信息数字化,自动生成麻…...
中秋特辑——3D动态礼盒贺卡(可监听鼠标移动)
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄ÿ…...
Json文件序列化读取
Json文件 [{"name":"清华大学","location":"北京","grade":"1"},{"name":"北京大学","location":"北京","grade":"2"} ] 安装包 代码 Program.c…...
ClickHouse(15)ClickHouse合并树MergeTree家族表引擎之GraphiteMergeTree详细解析
GraphiteMergeTree该引擎用来对Graphite数据(图数据)进行瘦身及汇总。对于想使用ClickHouse来存储Graphite数据的开发者来说可能有用。 如果不需要对Graphite数据做汇总,那么可以使用任意的ClickHouse表引擎;但若需要,那就采用GraphiteMerge…...
面试题库(二):Java基础
hashmap1.7跟1.8?优化点?红黑树化为什么是8?退化为什么?dp怎么玩?回溯怎么玩?递归怎么玩?stack能解决啥问题?fifo能解决啥问题?dfs怎么玩?bfs怎么玩?双亲委派模型。JDBC和双亲委派模型关系TCP四次挥手,TIME_WAIT发生在哪一方 TIME_WAIT过多如何处理HashMap底层结构…...
Linux:无法接收组播数据
1、检查Linux系统是否接收到组播数据 使用tcpdump工具,检查源或者目的地址(例如,239.1.1.1:9001)的数据包 tcpdump -i ens33 host 239.1.1.1 port 9001 2、关闭防火墙 临时关闭: systemctl stop firewalld service ip…...
实用汽车CAN总线解码:opendbc项目如何高效解决汽车数据解析难题
实用汽车CAN总线解码:opendbc项目如何高效解决汽车数据解析难题 【免费下载链接】opendbc a Python API for your car 项目地址: https://gitcode.com/gh_mirrors/op/opendbc 在汽车电子开发、ADAS系统研究或汽车诊断领域,你是否曾面临这样的困境…...
Ormar 性能优化:10 个提升数据库查询效率的技巧
Ormar 性能优化:10 个提升数据库查询效率的技巧 【免费下载链接】ormar python async orm with fastapi in mind and pydantic validation 项目地址: https://gitcode.com/gh_mirrors/or/ormar Ormar 是一个专为 FastAPI 设计的 Python 异步 ORM,…...
VSCode里Code Runner跑Python总报9009?别慌,检查一下你的setting.json文件
VSCode中Code Runner执行Python报错9009的终极排查指南 当你第一次在VSCode中用Code Runner插件运行Python脚本,满心期待看到输出结果时,终端却弹出"Process exited with code 9009"的红色错误提示——这种挫败感我深有体会。这个看似神秘的错…...
数据库备份与恢复策略
数据库备份与恢复策略 1. 技术分析 1.1 备份概述 备份是数据安全的基石: 备份类型完全备份: 全部数据增量备份: 变化数据差异备份: 上次完全备份后的变化备份策略:定期完全备份增量备份补充实时备份1.2 恢复策略 恢复类型完全恢复: 恢复到最新状态时间点恢复: 恢复到…...
IS6201A多相PWM控制器:从架构解析到PCB布局的电源设计实战
1. 项目概述:为什么我们需要关注IS6201A?在电源设计领域,尤其是面对高性能计算、数据中心服务器、高端显卡以及工业自动化设备时,工程师们常常面临一个核心挑战:如何为那些“电老虎”级别的核心芯片(比如CP…...
中国航空器拥有者及驾驶员协会:我国低空经济重点政策制度汇编(2025)
这份文档是2025 年中国低空经济重点政策制度汇编,由中国航空器拥有者及驾驶员协会编制,全面梳理国家 地方两级低空经济相关法律法规、规章标准与产业政策,核心是构建低空经济 “法律 - 规章 - 标准 - 政策” 四层制度体系,为低空…...
如何用WeChatExporter轻松备份和恢复微信聊天记录:Mac用户终极指南
如何用WeChatExporter轻松备份和恢复微信聊天记录:Mac用户终极指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删重要微信聊天记录而懊恼不已…...
AMD Ryzen SMU调试工具完全指南:免费开源硬件调优神器入门教程
AMD Ryzen SMU调试工具完全指南:免费开源硬件调优神器入门教程 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: ht…...
深度学习编译器优化:CNN与MHA块的性能差异与实践指南
1. 深度学习编译器优化概述在深度学习模型部署的实际场景中,我们常常面临一个关键矛盾:训练框架(如PyTorch)的动态图特性虽然灵活,但在推理时会产生显著的性能开销。这正是深度学习编译器技术大显身手的领域——通过静…...
FPGA无人机电源设计:集成PMIC方案如何解决多路供电与空间挑战
1. 项目概述与核心挑战最近在做一个由FPGA控制的无人机项目,其中电源管理系统的设计让我感触颇深。无人机这玩意儿,飞控、图传、传感器一个比一个耗电,但留给电源和PCB的空间却极其有限。更头疼的是,主控用上了高性能的FPGA或SoC&…...
