Io solverei questo problema in due passi, o tre (con array).
Prima leggere tutto e mettere in un database (preferito) oppure un array.
Poi cercare i duplicati e azzerare il contenuto dell'array o cancellare i record duplicati.
Successivamente ricopiare l'array in modo che contiene solo gli elementi validi.
Il terzo passo può essere evitato se la funzione di lettura salta tutti gli elementi nulli. Per il database non è necessario in quanto rimangono solo i record validi.
Nota:
Quando si tratta di grandi quantità di dati, conviene fare tabelle separate per il contenuto, ad esempio:
id luogo
1 Arezzo
2 Firenze
...
id gruppo
1 I
2 II
3 III
...
id CAP
1 10001
2 20002
...
In questo modo hai tre tabelline che contengono una quantità di dati molto ridotta.
Poi crei una quarta tabella, dove associ i vari ID, ad esempio:
id idluogo idgruppo idcap
1 1 1 1
2 1 1 2
3 1 2 4
...
In questo modo hai sì un po' più lavoro nella creazione, ma anche il grande vantaggio di avere solo un numero ridotto di dati e un database molto veloce. Questo è particolarmente importante per le applicazioni web su server non dedicati. Inoltre non bisogna strafare con gli indici di ricerca, e nel complessivo è quello che si fa un po' ovunque.
Per mostrare poi i dati, usi la SELECT con INNER JOIN. Per comprendere bene il funzionamento di tabelle correlate, consiglio usare Access con un semplice database creato allo scopo, inserire qualche dato e provare...
Giovanni
---
http://www.y2ksw.com/vbulletin