Entiendo que no quieres usar un while por que ya esta estructurada, pero no la puedes volver a estructurar con el while?
Mira, te presento un codigo donde estructura la tabla, y al mismo tiempo le imprime un valor.
Código PHP:
<?php
$a = "0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,0,0,0,0,0";
$a = explode(",",$a);
echo "<table border=\"1\">";
echo "<tr valign=\"center\" align=\"center\">
<td>Lunes</td>
<td>Martes</td>
<td>Miercoles</td>
<td>Jueves</td>
<td>Viernes</td>
<td>Sabado</td>
<td>Domingo</td>
</tr>";
for($i=0;$i<count($a);$i++){
if($i % 7 == 0)
echo "<tr valign=\"center\" align=\"center\">";
echo "<td width=\"100\" height=\"100\">".$a[$i]."</td>";
if($i+1 % 7 == 0)
echo "</tr>";
}
echo "</table>";
?>
Yo simulo la consulta de MySQL con una cadena y un explode, lo cual me crea un arreglo, y simplemente voy presentando los datos