You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何按数组元素的hash键num的取值对二维数组进行排序?

解决方案

1. PHP 7.4及以上版本(最简洁写法)

直接使用usort结合箭头函数+太空船运算符即可一行完成排序:

// 直接对原数组$arr按子元素的num字段升序排序
usort($arr, fn($item1, $item2) => $item1['num'] <=> $item2['num']);

排序后$arr的内容就是你需要的[$b, $c, $a]。

2. 兼容更低PHP版本的写法

如果运行环境不支持箭头函数,用匿名函数替代即可:

usort($arr, function($item1, $item2) {
    return $item1['num'] <=> $item2['num'];
});

补充说明

  • 上述写法中的<=>是PHP 7引入的太空船比较运算符,会自动对两个值做比较,小于返回-1,等于返回0,大于返回1,完全符合自定义排序回调的返回要求。
  • 如果需要降序排序,只需要把回调里的$item1和$item2交换位置即可。
  • 如果需要保留原数组的键名不重置,把usort换成uasort即可。

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 21:21:00