php - 无法按内部项目对多维数组进行排序
问题描述
我想按内部数组项的数量( count() )降序(即大多数项优先)对数组进行排序
这是我的数组,
Array
(
[Itm01] => Array
(
[0] => Array
(
[id] => 238
[col1] => 7908
[col2] => 7181
)
[1] => Array
(
[id] => 17024
[col1] => 1039
[col2] => 7181
)
[2] => Array
(
[id] =>
[col1] => 1039
[col2] => 7181
)
)
[Itm02] => Array
(
[0] => Array
(
[id] => 260
[col1] => 1039
[col2] => 8964
)
[2] => Array
(
[id] => 238
[col1] => 9149
[col2] => 8964
)
[3] => Array
(
[id] => 238
[col1] => 0
[col2] => 8964
)
[4] => Array
(
[id] => 238
[col1] => 7333
[col2] => 8964
)
[5] => Array
(
[id] => 238
[col1] => 9049
[col2] => 8964
)
[6] => Array
(
[id] => 238
[col1] => 7333
[col2] => 8964
)
[7] => Array
(
[id] => 238
[col1] => 9049
[col2] => 8964
)
[8] => Array
(
[id] => 238
[col1] => 8217
[col2] => 8964
)
[9] => Array
(
[id] => 238
[col1] => 7516
[col2] => 8964
)
[10] => Array
(
[id] => 82
[col1] => 1039
[col2] => 8964
)
)
[Itm03] => Array
(
[0] => Array
(
[id] => 238
[col1] => 7908
[col2] => 7276
)
[1] => Array
(
[id] => 238
[col1] => 9049
[col2] => 7276
)
)
[Itm04] => Array
(
[0] => Array
(
[id] => 82
[col1] => 8217
[col2] => 8217
)
)
)
但我希望索引为“Itm02”的项目作为第一个项目,因为它有更多项目。老实说,我想要和这个线程一样的东西。但是当我这样做时,
$warehouses = uksort($warehouses, function($a, $b) { return count($b) - count($a); });
但它返回一个空数组。如果有人可以提供帮助,那就太好了。
解决方案
uksort()
返回一个布尔值。
尝试以下操作:
uksort($warehouses, function($a, $b) { return count($b) - count($a); });
print_r($warehouses);
推荐阅读
- email - Images not showing on outlook and gmail
- r - R create summary percentages in a dataframe using cells that will become different denominators
- amazon-web-services - AWS Route 53 上子域的 https 证书问题
- java - 如何配置kotlin dsl使springboot多个模块打包成可执行jar文件
- c# - Blazor 服务器端组件 - 绑定未更新
- openstack - 将 Openstack 生产级系统从 Pike 升级到 Victoria 或一些稳定的更新版本
- python - python的完整子集可压缩为一行
- javascript - 在选择答案后寻找一种在问答游戏中禁用按钮(答案)的方法
- c# - 当我包含另一个类时缺少类型映射配置或不支持的映射
- ios - 在 Swift 中使用函数指针回调方法