Ver Mensaje Individual
  #26 (permalink)  
Antiguo 04/02/2014, 21:08
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Crear el siguiente array con php

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
  1. $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);
  2. $new = array();
  3. $i = -1;
  4. foreach ($array as $dato){
  5.     if (preg_match("/[\d\d:\d\d:\d\d]{8}/", $dato))
  6.         $j = $dato;
  7.  
  8.     $new[$j][++$i] = $dato;
  9.     if ($i == 7)
  10.         $i = -1;
  11. }
  12.  
  13. ksort($new); //Se ordena por los índices
  14.  
  15. foreach ($new as $n){
  16.     foreach ($n as $o){
  17.         echo $o . "<br />";
  18.     }
  19.     echo "<br />";
  20. }

Y este es el resultado:

Código HTML:
Ver original
  1. 06:48:55
  2. 26129/26130
  3. 1H CALCIO CATANIA@1H AS LIVORNO
  4. 0 - 0
  5. 2
  6. 8
  7. 0
  8.  
  9. 06:54:21
  10. 26117/26118
  11. 1H AC CHIEVO VERONA@1H SS LAZIO ROMA
  12. 0 - 1
  13. 4
  14. 80
  15. 897.29
  16.  
  17. 08:49:44
  18. 26225/26226
  19. 1H BETIS SEVILLA@1H RCD ESPANYOL BARCELONA
  20. 0 - 0
  21. 6
  22. 109
  23. 0
  24.  
  25. 12:49:38
  26. 26233/26234
  27. 1H ATHLETIC BILBAO@1H REAL MADRID
  28. 0 - 0
  29. 21
  30. 963.55
  31. 229.27
  32.  
  33. 16:58:33
  34. 1101/1102
  35. 1H SEATTLE SEAHAWKS@1H DENVER BRONCOS
  36. 22 - 0
  37. 223
  38. 21321.8
  39. 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
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand