salve a tutti.
mi sono appena iscritto nel forum, e sono relativamente nuovo anche nel campo del php e della programmazione in genere. spero comunque di poter dare il mio contributo alla community. nel frattempo, come è presumibile, chiedo un aiuto, o meglio una consulenza, per trovare una soluzione al seguente problema, che riporto sotto forma di esempio:
sono l'amministratore di un tennis club, presso cui organizzo tornei che coinvolgono un numero x di giocatori alla volta. ogni tornero è un record della tabella 'tornei' del mio database, i cui campi più importanti sono l'identificativo del torneo, la data di inizio e la data di fine del torneo stesso, e un campo varchar che contiene i partecipanti separati da virgole, da estrarre in un array con una semplice explode. in questo modo posso ricavare i nomi e il numero di giocatori che partecipano ad un particolare torneo, ed associare ad ognuno di loro il lasso di tempo in cui sono 'occupati' in quel torneo.
tabella tornei - campi
id_torneo | data_inizio_torneo | data_fine_torneo | giocatori
1 | timestamp | timestamp | nome_giocatore1,nome_giocatore2...
dati ricavabili
giocatori[0] = nome_giocatore1 | data_inizio_torneo | data_fine_torneo
giocatori[1] = nome_giocatore2 | data_inizio_torneo | data_fine_torneo
...
ogni giocatore potrà così risalire alla sua agenda in cui le date dei singoli tornei a cui partecipa risulteranno occupate, per determinati lassi di tempo.
quello che devo fare a partire da questo, è elaborare un algoritmo che mi permetta di trovare, per un determinato periodo, un numero dato di giocatori non occupati in altri tornei, in modo da poterli inserire in un nuovo torneo. ho pensato alla funzione array_intersect per confrontare i lassi di tempo liberi, inseriti in un array e confrontarli con l'array del periodo per cui voglio organizzare il torneo, da creare dinamicamente a partire da una data specifica ricavata dai giorni liberi dei singoli giocatori. solo che, fermo restando che non so se sia una soluzione accettabile, non credo di saperla realizzare. se qualcuno ha capito il problema, saprebbe aiutarmi?
grazie in anticipo per l'attenzione![]()