我有一个存储 id > parent 的数组
我想要做的是使用 PHP 中的 uasort 函数对这个数组进行排序,将所有孩子放在他们的父母之下
所以如果我有
ID>>PARENT
1 >> 0
2 >> 0
3 >> 1
4 >> 1
5 >> 0
6 >> 2
7 >> 6
8 >> 6
9 >> 2
那么我需要像这样返回结果
ID
1
3
4
2
6
7
8
9
我的数组是这样的
Array (
[0] => Array
(
[ID] => 1
[PARENT] => 0
)
[1] => Array
(
[ID] => 2
[PARENT] => 0
)
[2] => Array
(
[ID] => 3
[PARENT] => 1
)
[3] => Array
(
[ID] => 4
[PARENT] => 1
)
[4] => Array
(
[ID] => 5
[PARENT] => 0
)
[5] => Array
(
[ID] => 6
[PARENT] => 2
)
[6] => Array
(
[ID] =>7
[PARENT] => 6
)
[7] => Array
(
[ID] =>8
[PARENT] => 6
)
[8] => Array
(
[ID] =>9
[PARENT] => 9
)
)
这就是我所做的
uasort($survey, 'cmp');
print_r($survey);
function cmp($a, $b) {
if ($a['parent_id'] == $b['parent_id']) {
return 0;
}
return ($a['parent_id'] < $b['parent_id']) ? -1 : 1;
}
此代码首先对所有父母进行排序,然后将孩子排在父母之后,而不是在他们之下。
有人可以帮我解决这个问题吗?