本文介绍了如何通过关键多维数组的各个层面进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我发现这个code进行排序:
usort($阵列功能($ A,$ B){
返回$ a ['order_inside_level'] - $ B ['order_inside_level'];
});
这是很好的一个级别。我有这样的事情:
阵列(
阵列(
'级别'=>'AAA',
为了'='1',
'潜艇'=>阵列(
阵列(
'级别'=>'BBB',
为了'='1',
'潜艇'=>阵列(
阵列(
'级别'=>'CCC',
为了'='1',
'潜艇'=>阵列(
阵列(
'级别'=>DDD,
为了'='1',
'潜艇'=>阵列(
...
)
)
)
)
,
阵列(
'级别'=>'CCC',
为了'='2',
'潜艇'=>阵列( )
)
)
阵列(
'级别'=>'BBB',
为了'='2'
)
阵列(
'级别'=>'BBB',
为了'='3'
)
)
)
)
阵列(
'级别'=>'AAA',
为了'='2',
'潜艇'=>阵列( )
) )
阵列可具有任何深度和任何数目在每个级别中的元素。我需要使用上述code。通过按键秩序进行排序深度(AAA,BBB,CCC,等)的各个层面。
解决方案
函数recursive_sort(安培; $ ARR){
FS($ ARR);
的foreach($改编为$ K =>&安培; $ V){
如果(使用isset($ V ['潜艇'])){
recursive_sort($ V ['潜艇']);
}
}
}
功能sortByOrder($ A,$ B){
返回$ a ['order_inside_level'] - $ B ['order_inside_level'];
}功能FS(放大器; $阵列){ usort($阵列,'sortByOrder');}
多次尝试后,我有这个。有用。键(潜艇)的名称是很难codeD究竟是不是那么好,但是......我很高兴它的工作原理。
I found this code for sorting:
usort($array, function($a, $b) {
return $a['order_inside_level'] - $b['order_inside_level'];
});
It's good for one level. I have something like that:
array(
array(
'level'=>'aaa',
'order'='1',
'subs'=>array(
array(
'level'=>'bbb',
'order'='1',
'subs'=>array(
array(
'level'=>'ccc',
'order'='1',
'subs'=>array(
array(
'level'=>'ddd',
'order'='1',
'subs'=>array(
...
)
)
)
)
,
array(
'level'=>'ccc',
'order'='2',
'subs'=>array(
)
)
),
array(
'level'=>'bbb',
'order'='2'
),
array(
'level'=>'bbb',
'order'='3'
)
)
)
),
array(
'level'=>'aaa',
'order'='2',
'subs'=>array(
)
)
)
Array may have any depth and any number of elements in each level. I need to sort each level of depth (aaa,bbb,ccc, etc) using the code above by key 'order'.
解决方案
function recursive_sort(&$arr) {
fs($arr);
foreach($arr as $k=> &$v){
if (isset($v['subs'])) {
recursive_sort($v['subs']);
}
}
}
function sortByOrder($a, $b) {
return $a['order_inside_level'] - $b['order_inside_level'];
}
function fs(&$array){
usort($array, 'sortByOrder');
}
After multiple tries I have this. It works. Name of key (subs) is hardcoded what is not so good, but... I am glad it works.
这篇关于如何通过关键多维数组的各个层面进行排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!