A mi lo que se me ocurre, siguiendo en el planteamiento expuesto anteriormente, es meter los dias que no se puede hacer la reserva en el array de festivos.
Así pues puedes hacer una consulta a la base de datos y ver que dias están ocupados y luego un bucle que los vaya insertando en el array.
El siguiente código es un ejemplo, pues no se ni que base de datos usa ni na de na de tu aplicación
Código PHP:
$q = mysql_query("SELECT fecha FROM reservas WHERE hab_id=$id AND fecha>NOW() ORDER BY FECHA");
while ($r = mysql_fetch_row($q)) $festivos[] = $r[0];