[ create a new paste ] login | about

Link: http://codepad.org/RJrgN3zL    [ raw code | output | fork ]

PHP, pasted on Jun 1:
<?php

$array = array();
array_push($array, array('Page_Id'=>9, 'ParentPage_Id'=>0, 'Page'=>'Page1'));
array_push($array, array('Page_Id'=>4, 'ParentPage_Id'=>0, 'Page'=>'Page2'));
array_push($array, array('Page_Id'=>3, 'ParentPage_Id'=>4, 'Page'=>'Page3'));
array_push($array, array('Page_Id'=>5, 'ParentPage_Id'=>9, 'Page'=>'Page4'));
array_push($array, array('Page_Id'=>11, 'ParentPage_Id'=>3, 'Page'=>'Page5'));
array_push($array, array('Page_Id'=>12, 'ParentPage_Id'=>3, 'Page'=>'Page6'));  
array_push($array, array('Page_Id'=>13, 'ParentPage_Id'=>3, 'Page'=>'Page7'));  
array_push($array, array('Page_Id'=>6, 'ParentPage_Id'=>5, 'Page'=>'Page8'));
array_push($array, array('Page_Id'=>10, 'ParentPage_Id'=>3, 'Page'=>'Page9'));
array_push($array, array('Page_Id'=>7, 'ParentPage_Id'=>6, 'Page'=>'Page10'));
array_push($array, array('Page_Id'=>2, 'ParentPage_Id'=>7, 'Page'=>'Page11'));
array_push($array, array('Page_Id'=>8, 'ParentPage_Id'=>7, 'Page'=>'Page12'));

echo("<pre>");
var_dump(sort_pages($array));

function sort_pages($array) {

$tmp_array = array();

foreach($array as $page) {
    array_push($tmp_array, $page);
    child_pages($array, $page['Page_Id'], 1, $tmp_array);
}

return $tmp_array;

}



function child_pages($param_array, $page_id, $level, &$tmp_array) {

$aPages = array();
foreach($param_array as $aPage) { 
    if(isset($aPage['ParentPage_Id']) && $aPage['ParentPage_Id'] == $page_id) {
        array_push($aPages, $aPage);
    }
}

foreach($aPages as &$page) {
    array_push($tmp_array, $page);
    child_pages($array, $page['Page_Id'], $level, $tmp_array);
}

return $tmp_array;

}

?>


Output:
<pre>
Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38

Warning: Invalid argument supplied for foreach() on line 38
array(22) {
  [0]=>
  array(3) {
    ["Page_Id"]=>
    int(9)
    ["ParentPage_Id"]=>
    int(0)
    ["Page"]=>
    string(5) "Page1"
  }
  [1]=>
  array(3) {
    ["Page_Id"]=>
    int(5)
    ["ParentPage_Id"]=>
    int(9)
    ["Page"]=>
    string(5) "Page4"
  }
  [2]=>
  array(3) {
    ["Page_Id"]=>
    int(4)
    ["ParentPage_Id"]=>
    int(0)
    ["Page"]=>
    string(5) "Page2"
  }
  [3]=>
  array(3) {
    ["Page_Id"]=>
    int(3)
    ["ParentPage_Id"]=>
    int(4)
    ["Page"]=>
    string(5) "Page3"
  }
  [4]=>
  array(3) {
    ["Page_Id"]=>
    int(3)
    ["ParentPage_Id"]=>
    int(4)
    ["Page"]=>
    string(5) "Page3"
  }
  [5]=>
  array(3) {
    ["Page_Id"]=>
    int(11)
    ["ParentPage_Id"]=>
    int(3)
    ["Page"]=>
    string(5) "Page5"
  }
  [6]=>
  array(3) {
    ["Page_Id"]=>
    int(12)
    ["ParentPage_Id"]=>
    int(3)
    ["Page"]=>
    string(5) "Page6"
  }
  [7]=>
  array(3) {
    ["Page_Id"]=>
    int(13)
    ["ParentPage_Id"]=>
    int(3)
    ["Page"]=>
    string(5) "Page7"
  }
  [8]=>
  array(3) {
    ["Page_Id"]=>
    int(10)
    ["ParentPage_Id"]=>
    int(3)
    ["Page"]=>
    string(5) "Page9"
  }
  [9]=>
  array(3) {
    ["Page_Id"]=>
    int(5)
    ["ParentPage_Id"]=>
    int(9)
    ["Page"]=>
    string(5) "Page4"
  }
  [10]=>
  array(3) {
    ["Page_Id"]=>
    int(6)
    ["ParentPage_Id"]=>
    int(5)
    ["Page"]=>
    string(5) "Page8"
  }
  [11]=>
  array(3) {
    ["Page_Id"]=>
    int(11)
    ["ParentPage_Id"]=>
    int(3)
    ["Page"]=>
    string(5) "Page5"
  }
  [12]=>
  array(3) {
    ["Page_Id"]=>
    int(12)
    ["ParentPage_Id"]=>
    int(3)
    ["Page"]=>
    string(5) "Page6"
  }
  [13]=>
  array(3) {
    ["Page_Id"]=>
    int(13)
    ["ParentPage_Id"]=>
    int(3)
    ["Page"]=>
    string(5) "Page7"
  }
  [14]=>
  array(3) {
    ["Page_Id"]=>
    int(6)
    ["ParentPage_Id"]=>
    int(5)
    ["Page"]=>
    string(5) "Page8"
  }
  [15]=>
  array(3) {
    ["Page_Id"]=>
    int(7)
    ["ParentPage_Id"]=>
    int(6)
    ["Page"]=>
    string(6) "Page10"
  }
  [16]=>
  array(3) {
    ["Page_Id"]=>
    int(10)
    ["ParentPage_Id"]=>
    int(3)
    ["Page"]=>
    string(5) "Page9"
  }
  [17]=>
  array(3) {
    ["Page_Id"]=>
    int(7)
    ["ParentPage_Id"]=>
    int(6)
    ["Page"]=>
    string(6) "Page10"
  }
  [18]=>
  array(3) {
    ["Page_Id"]=>
    int(2)
    ["ParentPage_Id"]=>
    int(7)
    ["Page"]=>
    string(6) "Page11"
  }
  [19]=>
  array(3) {
    ["Page_Id"]=>
    int(8)
    ["ParentPage_Id"]=>
    int(7)
    ["Page"]=>
    string(6) "Page12"
  }
  [20]=>
  array(3) {
    ["Page_Id"]=>
    int(2)
    ["ParentPage_Id"]=>
    int(7)
    ["Page"]=>
    string(6) "Page11"
  }
  [21]=>
  array(3) {
    ["Page_Id"]=>
    int(8)
    ["ParentPage_Id"]=>
    int(7)
    ["Page"]=>
    string(6) "Page12"
  }
}


Create a new paste based on this one


Comments: