本文介绍了PHP排序数组()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个看起来像这样的数组:
I have an array which looks like:
array(
'parent1' => array(
name = 'somename',
childs = array('child1', 'child2', 'child3', 'child4')
),
'parent2' => array(
name = 'somename',
childs = array('child1')
),
'parent3' => array(
name = 'somename',
childs = array('child1', 'child2', 'child3', 'child4', 'child5')
)
'parent4' => array(
name = 'somename',
childs = array('child1', 'child2', 'child3')
),
'parent5' => array(
name = 'somename',
childs = array('child1', 'child2', 'child3', 'child4', 'child5', 'child6', 'child7')
)
)
我该如何按孩子的孩子计数(升序)对父母进行排序?不应更改父母和孩子的名字.
Ho do I sort parents by its childs count (asc order)? Parents and childs names should not be changed.
推荐答案
尝试一下:
function count_sort($a, $b) {
if (count($a) == count($b)) {
return 0;
}
return (count($a) < count($b)) ? -1 : 1;
}
$test_array = array(
'parent1' => array('child1', 'child2', 'child3', 'child4'),
'parent2' => array('child1'),
'parent3' => array('child1', 'child2', 'child3', 'child4', 'child5'),
'parent4' => array('child1', 'child2', 'child3'),
'parent5' => array('child1', 'child2', 'child3', 'child4', 'child5', 'child6', 'child7')
);
print_r($test_array);
usort($test_array, "count_sort");
print_r($test_array);
这篇关于PHP排序数组()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!