Vaya movida. Primero podías optimizar el código que ya tienes con un bucle:
Código PHP:
Ver original/*este query es el que me trae los datos
filtrados por la fecha y ordenado por el campo de la pagina. */
$sql="SELECT * FROM control WHERE fecha='".$fechag."'ORDER BY horallegada DESC";
$idcontrol=$row['idcontrol'];
$horallegada=$row['horallegada'];
for($i=1;$i<=10; $i++) {
$hora[$i]=$row['hora'.$i];
}
Con esto consigues lo mismo pero para trabajar más cómodo con arrays.
De este modo, en lugar de $hora1, $hora2, $horaN.... tendrás $hora[1],$hora[2],$hora[N]...
Ahora sólo te queda hacer unos condicionales, o una especie de bucle recursivo... que recorra hasta $hora[10] mirando si existen y asignándole los valores a $hora[$i-1]. ¿Es eso lo que quieres?