fork download
  1. <?php
  2. $arr = array(
  3. 1=>0,
  4. 2=>1,
  5. 3=>2,
  6. 4=>1,
  7. 5=>1,
  8. 6=>3,
  9. 7=>6,
  10. 8=>7
  11. );
  12. $parents_key = array_unique(array_values($arr));
  13. $tree = array();
  14. foreach($parents_key as $p){
  15. foreach($arr as $k => $v){
  16. if($v == $p) $tree[$p][] = $k;
  17. }
  18. }
  19. print_r($tree);
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [0] => 1
        )

    [1] => Array
        (
            [0] => 2
            [1] => 4
            [2] => 5
        )

    [2] => Array
        (
            [0] => 3
        )

    [3] => Array
        (
            [0] => 6
        )

    [6] => Array
        (
            [0] => 7
        )

    [7] => Array
        (
            [0] => 8
        )

)