Código PHP:
<?
foreach( $datos as $dato ){
$resultado[ $dato[' tipo'] ]['subtipo'] = $dato['nombre'];
}
$controlSubTipo = 0;
foreach( $resultado as $tipo=>$contTipo ){
?>
<div class="bloque">
<h3><?=$tipo?></h3>
<ul><?
foreach( $contTipo as $subtipo=>$nombre ){
if( $controlSubTipo==0 || $controlSubTipo!=$subtipo ){
?>
<li><?=$subtipo?>
<ul>
<?
}
?> <li>$nombre</li><?
if( $controlSubTipo!=$subtipo && $controlSubTipo!=0 ){
?>
</ul>
</li>
<?
$controlSubTipo = $subtipo;
}
?>
</ul>
</div>
<?
}