fork(1) download
  1. <?php
  2.  
  3. $fakeMySQLResult = array(
  4. 'id' => 1,
  5. 'parentid' => 'root',
  6. 'level' => 0,
  7. 'menuname' => 'Projects'
  8. ),
  9. 'id' => 2,
  10. 'parentid' => 'root',
  11. 'level' => 0,
  12. 'menuname' => 'Team'
  13. ),
  14. 'id' => 3,
  15. 'parentid' => 1,
  16. 'level' => 1,
  17. 'menuname' => 'Mayhem'
  18. ),
  19. 'id' => 4,
  20. 'parentid' => 1,
  21. 'level' => 1,
  22. 'menuname' => 'X'
  23. ),
  24. 'id' => 5,
  25. 'parentid' => 2,
  26. 'level' => 1,
  27. 'menuname' => 'Dev'
  28. ),
  29. 'id' => 6,
  30. 'parentid' => 5,
  31. 'level' => 2,
  32. 'menuname' => 'PHP'
  33. ),
  34. 'id' => 7,
  35. 'parentid' => 5,
  36. 'level' => 2,
  37. 'menuname' => 'MySQL'
  38. ),
  39. );
  40.  
  41. function returnSubNavigation($id,$level,$fullNavigationArray) {
  42. $html = '';
  43. if(array_key_exists($level, $fullNavigationArray) && array_key_exists($id, $fullNavigationArray[$level])) {
  44. $html .= '<ul>';
  45. foreach($fullNavigationArray[$level][$id] as $subElement) {
  46. $html .= '<li><a href="#"><span>'.$subElement["menuname"].'</span></a>';
  47. $html .= returnSubNavigation($subElement['id'], $level+1, $fullNavigationArray);
  48. $html .= '</li>';
  49. }
  50. $html .= '</ul>';
  51.  
  52. }
  53. return $html;
  54. }
  55.  
  56. $navigationTempArray = array();
  57. foreach($fakeMySQLResult as $row)
  58. {
  59. if(!array_key_exists($row['level'], $navigationTempArray )) {
  60. $navigationTempArray[$row['level']] = array();
  61. }
  62. if(!array_key_exists($row['parentid'], $navigationTempArray[$row['level']] )) {
  63. $navigationTempArray[$row['level']][$row['parentid']] = array();
  64. }
  65. $navigationTempArray[$row['level']][$row['parentid']][] = $row;
  66. }
  67.  
  68. //var_dump($navigationTempArray);die();
  69.  
  70.  
  71. echo returnSubNavigation('root', 0, $navigationTempArray);
  72.  
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
<ul><li><a href="#"><span>Projects</span></a><ul><li><a href="#"><span>Mayhem</span></a></li><li><a href="#"><span>X</span></a></li></ul></li><li><a href="#"><span>Team</span></a><ul><li><a href="#"><span>Dev</span></a><ul><li><a href="#"><span>PHP</span></a></li><li><a href="#"><span>MySQL</span></a></li></ul></li></ul></li></ul>