Entonces podría funcionar como te comentaba, creando un array:
Supongamos que se trata de esta semana, 21 al 25 de enero de 2019 y que obtienes la fecha en el formato 2019-01-21
Código PHP:
Ver original// Creas primero los índices por día
);
// Agregas los índices por hora 9hrs a 20hrs (8pm)
foreach($citas as $dia => $horas) {
for($i = 9; $i <= 20; $i++) {
$citas[$dia][$i] = ''; // Vacía, no hay cita
}
}
// Ejecutas y lees la consulta
// Debes obtener fecha y hora por separado
while($row = $mysqli_fetch_assoc($res)) {
$citas[$row['dia']][int $row['hora']] = $row['datos_de_cita'];
}
// Finalmente generas el HTML según tu gusto o necesidad
Se complicaría un poco si las citas no son en horas exactas, pero ahí está la idea.