Aproveché el tiempo libre que tenía para ordenar el array tal y como lo tienes. Hice una prueba con los datos de los 5 primeros partidos:
Código PHP:
Ver original$array = array("06:54:21", "26117/26118", "1H AC CHIEVO VERONA@1H SS LAZIO ROMA", "0 - 1", 4, 80, 897.29, "12:49:38", "26233/26234", "1H ATHLETIC BILBAO@1H REAL MADRID", "0 - 0", 21, 963.55, 229.27, "08:49:44", "26225/26226", "1H BETIS SEVILLA@1H RCD ESPANYOL BARCELONA", "0 - 0", 6, 109, 0, "06:48:55", "26129/26130", "1H CALCIO CATANIA@1H AS LIVORNO", "0 - 0", 2, 8, 0, "16:58:33", "1101/1102", "1H SEATTLE SEAHAWKS@1H DENVER BRONCOS", "22 - 0", 223, 21321.8, 6405.31); $i = -1;
foreach ($array as $dato){
$j = $dato;
$new[$j][++$i] = $dato;
if ($i == 7)
$i = -1;
}
ksort($new); //Se ordena por los índices
foreach ($new as $n){
foreach ($n as $o){
echo $o . "<br />";
}
echo "<br />";
}
Y este es el resultado:
Código HTML:
Ver original06:48:55
26129/26130
1H CALCIO CATANIA@1H AS LIVORNO
0 - 0
2
8
0
06:54:21
26117/26118
1H AC CHIEVO VERONA@1H SS LAZIO ROMA
0 - 1
4
80
897.29
08:49:44
26225/26226
1H BETIS SEVILLA@1H RCD ESPANYOL BARCELONA
0 - 0
6
109
0
12:49:38
26233/26234
1H ATHLETIC BILBAO@1H REAL MADRID
0 - 0
21
963.55
229.27
16:58:33
1101/1102
1H SEATTLE SEAHAWKS@1H DENVER BRONCOS
22 - 0
223
21321.8
6405.31
Básicamente, recorro el array y en cada iteración, verifico si el dato tiene el formato "HH:MM:SS" que es el de las horas, de ser así, asigno ese valor al actual índice del array y con otro contador, voy añadiendo los valores restantes, formándose así un array bidimensional. Cuando el dato sea una hora, cambia el primer índice, formándose así el segundo array dentro del principal y así sucesivamente, al final utilizo la función
ksort para ordenarlos según los índices de cada array que vienen siendo las horas y luego solamente me queda imprimir los datos.
Saludos