Uhm ... io estrarrei tutto in un array e lavorerei su quello, innanzi tutto. Magari puoi ordinarlo con sort() e poi tramite foreach controllo se la prima lettera del locale e' uguale a quella precedente, in caso contrario si trattera' di un nuovo "paragrafo" con una nuova lettera, altrimenti stampera' il nome del locale sotto a quelli gia' scritti...