ID > 親を格納する配列があります
私がやりたいことは、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;
}
このコードは、すべての親を最初に並べ替え、次に子を親の後に並べ替えます。
誰かがこの問題について私を助けてくれますか?