我想按降序排列的数组(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'的项目,因为它有更多项目。老实说,我想要与此thread相同的东西。但是当我这样做时,
$warehouses = uksort($warehouses, function($a, $b) { return count($b) - count($a); });
但是它返回一个空数组。如果有人可以帮助,那就太好了。
答案 0 :(得分:2)
uksort()
返回一个布尔值。
尝试以下操作:
var items = db.table.Where(p => p.id!=null).GroupBy(p => p.id)
.Select(grp => grp.First().id)
.ToList();
答案 1 :(得分:1)
array_multisort():对多维或多维数组进行排序
array_multisort(array_map('count', $a), SORT_DESC, $a);