idを表すキーと表す値を持つ配列があるとしますparent。
4  => 0
2  => 0
5  => 2
6  => 5
8  => 0
9  => 0
10 => 8
12 => 0
13 => 0
14 => 0
18 => 7
19 => 18
20 => 19
21 => 20
22 => 21
23 => 22
24 => 23
28 => 20
7  => 5
これをオブジェクトとして読み取ることもできます。
  { 
   id     : 4,
   parent : 0
  } // etc...
これから達成したい多次元配列は次のようになります。
4  => 0
2  => 5  
        => 6
        => 7
            => 18
                 => 19
                      => 20
                           => 21
                                 => 22
                                       => 23
                                             => 24
                           => 28
8  => 10
9  => 0
12 => 0
13 => 0
14 => 0
どうすればこれを行うことができますか?