二维数组排序算法php,phpsort_php二维数组排序方法
摘要 腾兴网为您分享:php二维数组排序方法,中信金通,掌上公交,云南移动,悟空识字等软件知识,以及电脑鼠标连点器,趣赚赚,顺广传媒,佳能lide220,口袋校园,放放影院,手机炒股软件,建行商城,平安志愿者,芯烨58打印机,随手易,win7wifi热点,手机游侠,江苏省如东高级中学,剑三灰鹅等软件it资讯,欢迎关注腾兴网。有如下的php 二维数组: 复制代码 代码示例: $users = array( array('name' = 'tom', 'age' = 20) , array('name' = 'anny', 'age' = 18) , array('name' = 'jack', 'age' = 22) ); 希望能按照age从小到大进行排序。 方法1、...
有如下的php 二维数组:
复制代码 代码示例:
$users = array(
array('name' => 'tom', 'age' => 20)
, array('name' => 'anny', 'age' => 18)
, array('name' => 'jack', 'age' => 22)
);
希望能按照age从小到大进行排序。
方法1、使用array_multisort
要将age提取出来存储到一维数组里,然后按照age升序排列。
代码:
复制代码 代码示例:
$ages = array();
foreach ($users as $user) {
$ages[] = $user['age'];
}
array_multisort($ages, SORT_ASC, $users);
执行后,$users就是排序好的数组了,可以打印出来看看。
如果需要先按年龄升序排列,再按照名称升序排列,方法同上,就是多提取一个名称数组出来,最后的排序方法这样调用:
复制代码 代码示例:
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
方法2、使用usort
此方法可以自定义一些比较复杂的排序方法。
例如按照名称的长度降序排列:
复制代码 代码示例:
usort($users, function($a, $b) {
$al = strlen($a['name']);
$bl = strlen($b['name']);
if ($al == $bl)
return 0;
return ($al > $bl) ? -1 : 1;
});
这里使用了匿名函数,如果有需要也可以单独提取出来。
其中$a, $b可以理解为$users数组下的元素,可以直接索引name值,并计算长度,而后比较长度就可以了。
推荐第二种方法,因为少了提取排序内容到一维数组的步骤,而且排序方法更为灵活。
相关推荐
二维数组排序算法php,phpsort_php二维数组排序方法相关推荐
- 经典算法研究系列:二、Dijkstra 算法初探
经典算法研究系列:二.Dijkstra 算法初探 July 二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...
- 二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法
二维数组的创建及使用 1.二维数组的创建 2.二维数组初始化 3.使用二维数组 二维数组的创建 声明二维数组的方法有两种,语法如下所示: 数组元素类型 数组名字[ ][ ]; 数组元素类型[ ][ ] ...
- PHP二维数组排序算法函数
<?php // 二维数组排序算法函数,能够具有通用性,可以调用php内置函数. function array_sort(&$arr, $order = []){$result = [] ...
- 数据结构与算法--数组:二维数组中查找
数组 数组最简单的是数据结构,占据一整块连续的内存并按照顺序存储数据,创建数组时候,我们需要首先指定数组的容量大小,然后根据大小分配内存.即使我们只在数组中存储一个元素,亚需要为所有数据预先分配内存, ...
- 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )
文章目录 一.抽象 二维数组 业务函数 1.二维数组 打印函数 2.二维数组 排序函数 二.完整代码示例 一.抽象 二维数组 业务函数 1.二维数组 打印函数 注意 , 二维数组 作为 函数参数 输入 ...
- 二维模式(矩阵)匹配(Rabin-Karp算法推广到二维)[转]
本文着重讨论由Rabin-Karp算法推广到二维来解决二维模式匹配问题的算法. 问题: 在一个n1*n2的二维字符组成中搜寻一个给定的m1*m2的模式.参考<算法导论>习题32.2-3. ...
- dijkstra算法c++_Matlab 二维模拟退火算法最优路径(主程序)
这部分承接Dijkstra算法的基础之上,先算出单源最短路径(绿线), 之后把经过的每个虚线段分成1000份,它们的基准点分别是b1.b2等 随机产生一系列1000的数字排列成1*6的矩阵代入模拟退火 ...
- 2维FFT算法实现——基于GPU的基2快速二维傅里叶变换
2维FFT算法实现--基于GPU的基2快速二维傅里叶变换 上篇讲述了一维FFT的GPU实现(FFT算法实现--基于GPU的基2快速傅里叶变换),后来我又由于需要做了一下二维FFT,大概思路如下. 首先 ...
- 模拟退火算法_Matlab 二维模拟退火算法最优路径(主程序)
这部分承接Dijkstra算法的基础之上,先算出单源最短路径(绿线), 之后把经过的每个虚线段分成1000份,它们的基准点分别是b1.b2等 随机产生一系列1000的数字排列成1*6的矩阵代入模拟退火 ...
最新文章
- PHP数据库操作分页类
- Python 语言介绍
- 20159320《网络攻防实践》第5周教材总结
- 时下流行的9种恶意软件,你都了解吗?
- Python下使用optparse模块实现对多个文件进行统计【二】
- 微软:程序员们,是时候丢掉 Win 7 了!
- 类数组的push方法
- 面向对象三,约束,加密
- 拓扑图是用什么软件画的?
- toastr 自定义提示
- 计算机专业wor知识,计算机专业毕业实习日记精选
- 八爪鱼-自定义模式采集数据
- Atitit 学科与知识领域分类门类分类法 目录 1. 学位学科门类是授予学位的学科类别。国际上大体有两种划分方法:	1 2. 三大类法 文理科 医学	1 3. 五大门类	2 4. 13门类	2 5
- 树莓派做网络代理_树莓派使用Proxy代理
- pvt检查是什么意思_EVT、DVT、PVT是什么意思
- C++程序设计课上机作业
- java程序设计 一种跨学科_(工业) 设计是 一种 跨学科 的专业。_Java程序设计2018-2019第二学期答案_学小易找答案...
- Python工程师必备:基础能力提升50篇文章合集
- 应用程序存在文件包含漏洞(Unix系统) WASC Threat Classification 解决办法
- 部门换届推文文字_我院举行第二届学生代表大会暨学生会换届大会
热门文章
- Python吴恩达机器学习课后习题作业一算法(Ⅰ)(1)
- GoLand下 dep init 失败的问题
- 高强度螺栓检测送检规则 中钢国检检测单位
- 运行pm2命令只出现[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
- datart 问题总结
- potplayer最佳设置_PotPlayer如何调整常用设置?PotPlayer调整常用设置教程
- linux ldd命令源代码,Linux中ldd命令的用法详解
- RK3568-IOT核心板不同规格品牌TF卡读写速率测试
- windows批处理命令总结(超详细滴)
- WIN7虚拟机的新增硬盘步骤