前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3分钟短文 | PHP 多维数组按值排序,别抓狂看这里

3分钟短文 | PHP 多维数组按值排序,别抓狂看这里

作者头像
程序员小助手
发布2020-07-02 14:44:38
1.3K0
发布2020-07-02 14:44:38
举报
文章被收录于专栏:程序员小助手程序员小助手

引言

如果你经常写 PHP,要说你没用过数组,那简直是不可能的。PHP 一个数组可以走遍大街小巷,行遍万水千山。数组相关的函数也马虎不得,如影随形。

今天说说一个稍显棘手的问题,多维数组的排序。

学习时间

比如下面的数组,

如果想要根据 order 的值进行排序(升序,降序),怎么做呢?

你需要使用 usort 函数,且需要声明一个回调函数:

代码语言:javascript
复制
function sortByOrder($a, $b) {
    return $a['order'] - $b['order'];
}

usort($myArray, 'sortByOrder');

这在 PHP 5.2 以及早期的版本内如此使用,之后的 PHP 版本,可以直接使用匿名函数,简写如下:

代码语言:javascript
复制
usort($myArray, function($a, $b) {
    return $a['order'] - $b['order'];
});

随着 PHP 版本的迭代,越来越多的新特性添加进去,特别是 PHP 7 以后的太空舱操作符,给这样的回调函数提供了更灵活简便的用法:

代码语言:javascript
复制
usort($myArray, function($a, $b) {
    return $a['order'] <=> $b['order'];
});

由特殊到一般

上面的函数处理都是针对特定的数组进行的,现在我们把情形推向一般,写一个可以通用的处理函数,可以用于对多位数组的排序处理:

特别地,如果你需要保留排序前后的键值索引关系,那么就要使用 uasort 函数了。用法与 usort 同。

写在最后

因为处理的数组结构不可确定,在实际使用中,回调函数内开发者可灵活操作,已达到排序的目的。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 学习时间
  • 由特殊到一般
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档