jag hade nog gjort något i stil med följande:
Kod:
$query = mysql_query("SELECT SQL_CACHE * FROM `tabell` ORDER BY `name`");
while ( $data = mysql_fetch_assoc($query) ) $menu[$data['type']][$data['parent']][$data['id']] = $data['name'];
Sedan loopat igenom Arrayn för att skriva ut den.
3D-arrays rular :P
Edit: Optimerade koden