摘要 腾兴网为您分享: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二维数组排序方法相关推荐

  1. 经典算法研究系列:二、Dijkstra 算法初探

    经典算法研究系列:二.Dijkstra 算法初探  July   二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...

  2. 二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法

    二维数组的创建及使用 1.二维数组的创建 2.二维数组初始化 3.使用二维数组 二维数组的创建 声明二维数组的方法有两种,语法如下所示: 数组元素类型 数组名字[ ][ ]; 数组元素类型[ ][ ] ...

  3. PHP二维数组排序算法函数

    <?php // 二维数组排序算法函数,能够具有通用性,可以调用php内置函数. function array_sort(&$arr, $order = []){$result = [] ...

  4. 数据结构与算法--数组:二维数组中查找

    数组 数组最简单的是数据结构,占据一整块连续的内存并按照顺序存储数据,创建数组时候,我们需要首先指定数组的容量大小,然后根据大小分配内存.即使我们只在数组中存储一个元素,亚需要为所有数据预先分配内存, ...

  5. 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )

    文章目录 一.抽象 二维数组 业务函数 1.二维数组 打印函数 2.二维数组 排序函数 二.完整代码示例 一.抽象 二维数组 业务函数 1.二维数组 打印函数 注意 , 二维数组 作为 函数参数 输入 ...

  6. 二维模式(矩阵)匹配(Rabin-Karp算法推广到二维)[转]

    本文着重讨论由Rabin-Karp算法推广到二维来解决二维模式匹配问题的算法. 问题: 在一个n1*n2的二维字符组成中搜寻一个给定的m1*m2的模式.参考<算法导论>习题32.2-3. ...

  7. dijkstra算法c++_Matlab 二维模拟退火算法最优路径(主程序)

    这部分承接Dijkstra算法的基础之上,先算出单源最短路径(绿线), 之后把经过的每个虚线段分成1000份,它们的基准点分别是b1.b2等 随机产生一系列1000的数字排列成1*6的矩阵代入模拟退火 ...

  8. 2维FFT算法实现——基于GPU的基2快速二维傅里叶变换

    2维FFT算法实现--基于GPU的基2快速二维傅里叶变换 上篇讲述了一维FFT的GPU实现(FFT算法实现--基于GPU的基2快速傅里叶变换),后来我又由于需要做了一下二维FFT,大概思路如下. 首先 ...

  9. 模拟退火算法_Matlab 二维模拟退火算法最优路径(主程序)

    这部分承接Dijkstra算法的基础之上,先算出单源最短路径(绿线), 之后把经过的每个虚线段分成1000份,它们的基准点分别是b1.b2等 随机产生一系列1000的数字排列成1*6的矩阵代入模拟退火 ...

最新文章

  1. PHP数据库操作分页类
  2. Python 语言介绍
  3. 20159320《网络攻防实践》第5周教材总结
  4. 时下流行的9种恶意软件,你都了解吗?
  5. Python下使用optparse模块实现对多个文件进行统计【二】
  6. 微软:程序员们,是时候丢掉 Win 7 了!
  7. 类数组的push方法
  8. 面向对象三,约束,加密
  9. 拓扑图是用什么软件画的?
  10. toastr 自定义提示
  11. 计算机专业wor知识,计算机专业毕业实习日记精选
  12. 八爪鱼-自定义模式采集数据
  13. Atitit 学科与知识领域分类门类分类法 目录 1. 学位学科门类是授予学位的学科类别。国际上大体有两种划分方法: 1 2. 三大类法 文理科 医学 1 3. 五大门类 2 4. 13门类 2 5
  14. 树莓派做网络代理_树莓派使用Proxy代理
  15. pvt检查是什么意思_EVT、DVT、PVT是什么意思
  16. C++程序设计课上机作业
  17. java程序设计 一种跨学科_(工业) 设计是 一种 跨学科 的专业。_Java程序设计2018-2019第二学期答案_学小易找答案...
  18. Python工程师必备:基础能力提升50篇文章合集
  19. 应用程序存在文件包含漏洞(Unix系统) WASC Threat Classification 解决办法
  20. 部门换届推文文字_我院举行第二届学生代表大会暨学生会换届大会

热门文章

  1. Python吴恩达机器学习课后习题作业一算法(Ⅰ)(1)
  2. GoLand下 dep init 失败的问题
  3. 高强度螺栓检测送检规则 中钢国检检测单位
  4. 运行pm2命令只出现[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
  5. datart 问题总结
  6. potplayer最佳设置_PotPlayer如何调整常用设置?PotPlayer调整常用设置教程
  7. linux ldd命令源代码,Linux中ldd命令的用法详解
  8. RK3568-IOT核心板不同规格品牌TF卡读写速率测试
  9. windows批处理命令总结(超详细滴)
  10. WIN7虚拟机的新增硬盘步骤