Avi*_*ram 26 php arrays sorting
我有一个数组,如:
Array
(
[DEF] => Array
(
[0] => Array
(
[type] => 1
[id] => 1212
[name] => Jane Doe
[current] => 1
)
[1] => Array
(
[type] => 1
[id] => 3123121
[name] => Door
[current] =>
)
)
[ABC] => Array
(
[0] => Array
(
[type] => 1
[id] => 1234
[name] => John Doe
[current] =>
)
)
[WW] => Array
(
[0] => Array
(
[type] => 1
[id] => 1212
[name] => Jane Doe
[current] => 1
)
[1] => Array
(
[type] => 1
[id] => 3123121
[name] => Door
[current] =>
)
[2] => Array
(
[type] => 1
[id] => 64646
[name] => Floor
[current] =>
)
)
)
Run Code Online (Sandbox Code Playgroud)
并且我想按内部数组项的数字(count())对这个数组进行排序(即大多数项目是第一个),所以我将拥有这个数组:
Array
(
[WW] => Array
(
[0] => Array
(
[type] => 1
[id] => 1212
[name] => Jane Doe
[current] => 1
)
[1] => Array
(
[type] => 1
[id] => 3123121
[name] => Door
[current] =>
)
[2] => Array
(
[type] => 1
[id] => 64646
[name] => Floor
[current] =>
)
)
[DEF] => Array
(
[0] => Array
(
[type] => 1
[id] => 1212
[name] => Jane Doe
[current] => 1
)
[1] => Array
(
[type] => 1
[id] => 3123121
[name] => Door
[current] =>
)
)
[ABC] => Array
(
[0] => Array
(
[type] => 1
[id] => 1234
[name] => John Doe
[current] =>
)
)
)
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议一个有效的方法吗?谢谢.
Arn*_*anc 33
使用uksort:
uksort($array, function($a, $b) { return count($b) - count($a); });
Run Code Online (Sandbox Code Playgroud)
使用array_multisort:
array_multisort(array_map('count', $array), SORT_DESC, $array);
Run Code Online (Sandbox Code Playgroud)
PHP <5.3:
function sort_cb($a, $b) {
return count($b) - count($a);
}
uksort($array, 'sort_cb');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21731 次 |
| 最近记录: |