Ciao raga,
posto in questa sezione solo perchè sto sviluppando in js, ma cmq il mio problema è concettuale, quindi va bene anche un algoritmo in linguaggio naturale o pseudocodice .
Espongo:
Possiedo un array che contiene dei valori ammissibili per un dato campo:
Codice PHP:
ammissibili = [val1] [val2] [val3] [val4
ed una variabile che mi indichi il numero massimo di questi utilizzabili contemporaneamente:
Codice PHP:
max 
Ora, gli array da verificare sono dei seguenti tipi (alla loro destra trovate il risultato della validazione):
Codice PHP:
1)   [val1] -- OK!
2)   [val1] [val3] -- OK!
3)   [val1] [val2] [val3] -- NO! (ho superato MAX)
4)   [val1] [val1] -- NO! (Ho sintassi errata doppione)
5)   [val6] [val5] -- NO! (tutti i valori sono inammissibili)
6)   [val5] [val2] -- NO! (ho un valore non ammissibile
Per facilitarmi un pò il compito, il risultato resta cmq "ok" o "no" senza specificare il tipo di errore.

Sto impazzendo da vari giorni per cercare di fare qualcosa di "pulito" per implementare questa soluzione in js ma ogni volta che credo di aver trovato la strada giusta, uno dei check fallisce (ad esempio ora non mi valida l'ultima situazione).

Potete darmi una mano a capire come procedere?

Grazie...