PHP – Trouvez le prochain intervalle de time disponible

Je cherche de l'aide pour écrire un script pour find le prochain intervalle de time disponible.

Ex: la personne A veut un rendez-vous et les créneaux horaires disponibles tous les jours sont 9 h, 12 h, 16 h, 18 h, 21 h

Donc, j'ai besoin de vérifier datatables existantes et de comparer les créneaux horaires réservés pour les autres rendez-vous, puis de find la prochaine disponible.

$apts = array( 'Person 1' => '1/1/09-9:00', 'Person 2' => '1/1/09-12:00', 'Person 3' => '1/1/09-18:00', 'Person 4' => '1/1/09-21:00' ); 

Donc, je dois find la prochaine fente pour Person A contre $ apts, et cela devrait arriver à 16 heures (1/1 / 09-16: 00). Ensuite vient la Personne B et la prochaine fente pour lui / elle devrait être '1/2 / 09-9: 00', car il n'y a plus de créneaux horaires le 1/1/09, alors allez à 9h le lendemain.

Faire depuis? Merci!!

Une database serait la meilleure solution sémantiquement parlante. Si vous souhaitez utiliser une table avec les colonnes time et person_id , où l' time est codée en tant que time UNIX (facilement adaptable à d'autres formats cependant), vous pouvez simplement exécuter:

 SELECT time FROM table WHERE person_id = 0 AND time > 1234567890 LIMIT 1; 

En restant dans votre solution originale de PHP, une solution sémantiquement sensible pourrait simplement être une boucle while pour searchr le prochain intervalle de time disponible.

 $timeslot = $desired_timeslot; while(in_array($timeslot, $apts)) { $timeslot = get_next_timeslot($timeslot); } return $timeslot; 

Bien sûr, vous devrez définir la fonction get_next_timeslot() en fonction de votre méthode de encoding / organisation.