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
相关产品推荐
相关产品推荐

