se ho capito bene cosa vuoi fare, io creerei una tabella con questi campi:
id_utente
codice
ultima_azione
e quando si collega un utente (in pseudocodice):
codice:
validita = 1 giorno
se (adesso-ultima_azione)>validita //periodo scaduto
scelgo un codice dall'array
verifico con una query che ci siano massimo 4 utenti con quel codice e (adesso-ultima_azione)<=validita
se e' vero
glie l'assegno
altrimenti
scelgo un altro codice e verifico da capo
altrimenti //il periodo non e' scaduto
aggiorno il database impostando all'orario attuale l'ultima azione dell'utente
ciao
danno