<?php
$fakeMySQLResult = array( 'id' => 1,
'parentid' => 'root',
'level' => 0,
'menuname' => 'Projects'
),
'id' => 2,
'parentid' => 'root',
'level' => 0,
'menuname' => 'Team'
),
'id' => 3,
'parentid' => 1,
'level' => 1,
'menuname' => 'Mayhem'
),
'id' => 4,
'parentid' => 1,
'level' => 1,
'menuname' => 'X'
),
'id' => 5,
'parentid' => 2,
'level' => 1,
'menuname' => 'Dev'
),
'id' => 6,
'parentid' => 5,
'level' => 2,
'menuname' => 'PHP'
),
'id' => 7,
'parentid' => 5,
'level' => 2,
'menuname' => 'MySQL'
),
);
function returnSubNavigation($id,$level,$fullNavigationArray) {
$html = '';
$html .= '<ul>';
foreach($fullNavigationArray[$level][$id] as $subElement) {
$html .= '<li><a href="#"><span>'.$subElement["menuname"].'</span></a>';
$html .= returnSubNavigation($subElement['id'], $level+1, $fullNavigationArray);
$html .= '</li>';
}
$html .= '</ul>';
}
return $html;
}
$navigationTempArray = array(); foreach($fakeMySQLResult as $row)
{
$navigationTempArray[$row['level']] = array(); }
$navigationTempArray[$row['level']][$row['parentid']] = array(); }
$navigationTempArray[$row['level']][$row['parentid']][] = $row;
}
//var_dump($navigationTempArray);die();
echo returnSubNavigation('root', 0, $navigationTempArray);
PD9waHAKCiRmYWtlTXlTUUxSZXN1bHQgPSBhcnJheSgKCWFycmF5KAoJCSdpZCcgCQk9PiAxLAoJCSdwYXJlbnRpZCcgCT0+ICdyb290JywKCQknbGV2ZWwnIAk9PiAwLAoJCSdtZW51bmFtZScgCT0+ICdQcm9qZWN0cycKCSksCglhcnJheSgKCQknaWQnIAkJPT4gMiwKCQkncGFyZW50aWQnIAk9PiAncm9vdCcsCgkJJ2xldmVsJyAJPT4gMCwKCQknbWVudW5hbWUnIAk9PiAnVGVhbScKCSksCglhcnJheSgKCQknaWQnIAkJPT4gMywKCQkncGFyZW50aWQnIAk9PiAxLAoJCSdsZXZlbCcgCT0+IDEsCgkJJ21lbnVuYW1lJyAJPT4gJ01heWhlbScKCSksCglhcnJheSgKCQknaWQnIAkJPT4gNCwKCQkncGFyZW50aWQnIAk9PiAxLAoJCSdsZXZlbCcgCT0+IDEsCgkJJ21lbnVuYW1lJyAJPT4gJ1gnCgkpLAoJYXJyYXkoCgkJJ2lkJyAJCT0+IDUsCgkJJ3BhcmVudGlkJyAJPT4gMiwKCQknbGV2ZWwnIAk9PiAxLAoJCSdtZW51bmFtZScgCT0+ICdEZXYnCgkpLAoJYXJyYXkoCgkJJ2lkJyAJCT0+IDYsCgkJJ3BhcmVudGlkJyAJPT4gNSwKCQknbGV2ZWwnIAk9PiAyLAoJCSdtZW51bmFtZScgCT0+ICdQSFAnCgkpLAoJYXJyYXkoCgkJJ2lkJyAJCT0+IDcsCgkJJ3BhcmVudGlkJyAJPT4gNSwKCQknbGV2ZWwnIAk9PiAyLAoJCSdtZW51bmFtZScgCT0+ICdNeVNRTCcKCSksCik7CgpmdW5jdGlvbiByZXR1cm5TdWJOYXZpZ2F0aW9uKCRpZCwkbGV2ZWwsJGZ1bGxOYXZpZ2F0aW9uQXJyYXkpIHsKCSRodG1sID0gJyc7CglpZihhcnJheV9rZXlfZXhpc3RzKCRsZXZlbCwgJGZ1bGxOYXZpZ2F0aW9uQXJyYXkpICYmIGFycmF5X2tleV9leGlzdHMoJGlkLCAkZnVsbE5hdmlnYXRpb25BcnJheVskbGV2ZWxdKSkgewoJCSRodG1sIC49ICc8dWw+JzsKCQlmb3JlYWNoKCRmdWxsTmF2aWdhdGlvbkFycmF5WyRsZXZlbF1bJGlkXSBhcyAkc3ViRWxlbWVudCkgewoJCQkkaHRtbCAuPSAgJzxsaT48YSBocmVmPSIjIj48c3Bhbj4nLiRzdWJFbGVtZW50WyJtZW51bmFtZSJdLic8L3NwYW4+PC9hPic7CgkJCSRodG1sIC49ICByZXR1cm5TdWJOYXZpZ2F0aW9uKCRzdWJFbGVtZW50WydpZCddLCAkbGV2ZWwrMSwgJGZ1bGxOYXZpZ2F0aW9uQXJyYXkpOwoJCQkkaHRtbCAuPSAgJzwvbGk+JzsKCQl9CgkJJGh0bWwgLj0gJzwvdWw+JzsKCgl9CglyZXR1cm4gJGh0bWw7Cn0KCiRuYXZpZ2F0aW9uVGVtcEFycmF5ID0gYXJyYXkoKTsKZm9yZWFjaCgkZmFrZU15U1FMUmVzdWx0IGFzICRyb3cpCnsKCWlmKCFhcnJheV9rZXlfZXhpc3RzKCRyb3dbJ2xldmVsJ10sICRuYXZpZ2F0aW9uVGVtcEFycmF5ICkpIHsKCQkkbmF2aWdhdGlvblRlbXBBcnJheVskcm93WydsZXZlbCddXSA9IGFycmF5KCk7Cgl9CglpZighYXJyYXlfa2V5X2V4aXN0cygkcm93WydwYXJlbnRpZCddLCAkbmF2aWdhdGlvblRlbXBBcnJheVskcm93WydsZXZlbCddXSApKSB7CgkJJG5hdmlnYXRpb25UZW1wQXJyYXlbJHJvd1snbGV2ZWwnXV1bJHJvd1sncGFyZW50aWQnXV0gPSBhcnJheSgpOwoJfQoJJG5hdmlnYXRpb25UZW1wQXJyYXlbJHJvd1snbGV2ZWwnXV1bJHJvd1sncGFyZW50aWQnXV1bXSA9ICRyb3c7Cn0KCi8vdmFyX2R1bXAoJG5hdmlnYXRpb25UZW1wQXJyYXkpO2RpZSgpOwoKCmVjaG8gcmV0dXJuU3ViTmF2aWdhdGlvbigncm9vdCcsIDAsICRuYXZpZ2F0aW9uVGVtcEFycmF5KTsK