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

PHP如何按子数组元素数量进行降序排序?

PHP数组按子数组长度降序排序实现

需求说明

给定如下PHP数组:

$letters = [
    ['a', 'c', 'f'],
    ['c', 'f'],
    ['b', 'd', 'x', 'c', 'f'],
    ['f']
];

需要将该数组按子数组的元素数量降序排序,最终输出格式如下:

'b', 'd', 'x', 'c', 'f'
'a', 'c', 'f'
'c', 'f'
'f'

实现代码

直接使用PHP内置的usort()函数自定义排序规则即可:

$letters = [
    ['a', 'c', 'f'],
    ['c', 'f'],
    ['b', 'd', 'x', 'c', 'f'],
    ['f']
];

// 按子数组长度降序排序
usort($letters, function($a, $b) {
    return count($b) - count($a);
});

// 按要求格式输出
foreach ($letters as $sub) {
    echo "'" . implode("', '", $sub) . "'\n";
}

代码说明

  • usort():用于对数组进行用户自定义规则的排序,会直接修改原数组
  • 匿名排序函数:通过count($b) - count($a)实现降序逻辑——当$b的元素数量多于$a时,返回正数,$b会被排在$a之前
  • implode():将子数组的元素拼接成符合要求的字符串格式,再逐行输出

内容的提问来源于stack exchange,提问作者G. Rey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:52:04