Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como Agregar estos campos a un array y despues ordenarlo?

Estas en el tema de Como Agregar estos campos a un array y despues ordenarlo? en el foro de PHP en Foros del Web. Saludos hermanos del foro, Tengo la siguiente funcion que le entran algunos parametros, la cuestion es que ahorita tengo que guarde en la variable $response ...

  #1 (permalink)  
Antiguo 03/02/2014, 14:31
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Como Agregar estos campos a un array y despues ordenarlo?

Saludos hermanos del foro,

Tengo la siguiente funcion que le entran algunos parametros, la cuestion es que ahorita tengo que guarde en la variable $response los datos que le entren construyendo filas para una tabla. Lo que quiero hacer es que cuando le lleguen datos irlos almacenando en un array, siendo $anterior['Time'] el campo llave entonces cuando ya se termine de construir el array poderlo ordenar por fecha de menor a mayor. Espero explicarme bien, alguna ayuda ??
Mi codigo:
Código PHP:
function showFila(&$response$anterior$counterTickets$counterRisk$counterWinLoss$todayFigure$IdGames$IdAgents){
   
$response .= "<tr>";
   
$response .= "<td>".$anterior['Time']."</td>";
   
$response .= "<td>".$anterior['NumGame']."</td>";
   
$response .= "<td>".$anterior['Teams']."</td>";
   
$response .= "<td>".$anterior['Score']."</td>";
   
$response .= "<td><a href='#' rel='".$IdGames."-".$IdAgents."' onClick='openInfoWager(this);'>".$counterTickets."</a></td>";
   
$response .= "<td>$".$counterRisk."</td>";
   
$response .= "<td>".$counterWinLoss."</td>";
   
$response .= "<td>".$todayFigure."</td>";
   
$response .= "</tr>";

  #2 (permalink)  
Antiguo 04/02/2014, 14:53
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta array_push() no me funciona bien...?

Hola gente,

Tengo una funcion que recibe algunos datos, quiero meter en un array cada uno de ellos y despues ordenarlo por el campo Time, pero al tratar de hacer el array_push para que se vaya acumulando esos datos, me da error y no me almacena nada. Alguna ayuda ??
Código PHP:
function showFila(&$response$anterior$counterTickets$counterRisk$counterWinLoss$todayFigure$IdGames$IdAgents$isEnd){
 
$IdGames substr($IdGames, -1);     
 
$arrGames  explode("_"$IdGames);         
 
$dltDupIG array_unique($arrGames);     
 
$arrIdGameEnd array_values($dltDupIG);                          
 
$IdGames        implode('_'$arrIdGameEnd);  
                       
 
$IdAgents substr($IdAgents, -1);     
 
$arrAgent  explode("_"$IdAgents);        
 
$dltDupAg array_unique($arrAgent);     
 
$arrIdAgentEnd  array_values($dltDupAg);                                    
 
$IdAgents       implode('_'$arrIdAgentEnd);  
                        
 
$test "<a href='#' rel='".$IdGames."-".$IdAgents."' onClick='openInfoWager(this);'>".$counterTickets."</a>";
 
array_push($arrGamesPrint$anterior['Time'], $anterior['NumGame'], $anterior['Teams'],$anterior['Score'], $test$counterRisk$counterWinLoss);
                        
 if(
$isEnd == 1){
    
error_log("ArrayGames = ".print_r($arrGamesPrinttrue));
 }


  #3 (permalink)  
Antiguo 04/02/2014, 15:03
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: array_push() no me funciona bien...?

Y cual es el error que obtienes de la ejecución de tu script??
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 04/02/2014, 15:09
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Exclamación Respuesta: array_push() no me funciona bien...?

Perdon le di marcar como solucionado por error,

Tengo el siguiente codigo mira:
Código PHP:
 array_push($arrGamesPrint, array("Time" => $anterior['Time'], "NumGame" => $anterior['NumGame'])); 
Pero me da este error:

[Tue Feb 04 16:11:51 2014] [error] [client 10.0.6.93] PHP Warning: array_push() expects parameter 1 to be array, null given in /var/www/gradingticker/v1/class/search.php on line 109, referer: http://gradingticker.evenreal.com/index.php

  #5 (permalink)  
Antiguo 04/02/2014, 15:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: array_push() no me funciona bien...?

Pues el error es claro $arrGamesPrint NO es un array, si no es nulo, tienes que pasarle un array a array_push.

Saludos.
  #6 (permalink)  
Antiguo 04/02/2014, 15:23
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Exclamación Respuesta: array_push() no me funciona bien...?

Amigo este es mi codigo si esta declarado pero afuera de la funcion, no se si esta bien pero deje la declaracion del array fuera de la funcion ya que yo llamo o mando los valores a esa funcion dentro de un while entonces no se si la pongo dentro ese array se estaria creando cada vez que en el while yo llamo la funcion, este es mi codigo:
Código PHP:
$arrGamesPrint   = array();

 function 
showFila(&$response$anterior$counterTickets$counterRisk$counterWinLoss$todayFigure$IdGames$IdAgents$isEnd){
     
$IdGames substr($IdGames, -1);     
     
$arrGames  explode("_"$IdGames);        
     
$dltDupIG   array_unique($arrGames);      
     
$arrIdGameEnd   array_values($dltDupIG);                              
     
$IdGames implode('_'$arrIdGameEnd);  
                       
     
$IdAgents substr($IdAgents, -1);     
     
$arrAgent explode("_"$IdAgents);        
     
$dltDupAg array_unique($arrAgent);     
     
$arrIdAgentEnd  array_values($dltDupAg);                                    
     
$IdAgents       implode('_'$arrIdAgentEnd);  
                        
     
array_push($arrGamesPrint, array("Time" => $anterior['Time'], "NumGame" => $anterior['NumGame']));
                        
     if(
$isEnd == 1){
         
error_log("ArrayGames = ".print_r($arrGamesPrinttrue));
     }

  #7 (permalink)  
Antiguo 04/02/2014, 15:27
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Respuesta: array_push() no me funciona bien...?

Efectivamente ya probé colocando la declaración del array dentro de la función y solo me almacena el ultimo dato que le llego y no los demás que pasaron por ella, alguna ayuda de como solucionar mi problema ?
  #8 (permalink)  
Antiguo 04/02/2014, 16:09
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Crear el siguiente array con php

Saludos,

Tengo un codigo que con un push voy insertando datos en un array, la cuestion es que necesito guardar en ese array los datos de esta manera:

$anterior['Time'] => $anterior['NumGame'], $anterior['Teams'], $anterior['Score'], $test, $counterRisk, $counterWinLoss

Osea el campo llamado Time va a hacer el campo que contiene los otros campos, la verdad pues creo que solo de esta forma podria aplicarle un sort para que me lo ordene por hora de menor a mayor, si tienen alguna otra idea es de gran ayuda, aca tienen como meto los datos en el array, me esta funcionando pero el problema esta en que va todo corrido y creo que asi no puede aplicarle el sort al array. Alguna ayuda ?
Código PHP:
  array_push($arrGamesPrint$anterior['Time'], $anterior['NumGame'], $anterior['Teams'], $anterior['Score'], $test$counterRisk$counterWinLoss); 
  #9 (permalink)  
Antiguo 04/02/2014, 16:18
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Crear el siguiente array con php

Si miras la documentación de sort, sobre todo los ejemplos, verás que han publicado funciones para ordenar un arreglo por la clave que requieras
  #10 (permalink)  
Antiguo 04/02/2014, 16:23
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Respuesta: Crear el siguiente array con php

Amigo pero mi duda es la siguiente, como hago en mi caso ya que mis datos son por ejemplo: hora, numero de juego, equipo, marcador. Al yo ordenar mi array por hora, el sort es capaz de decir que la hora 09:00:00 - numero de juego es 1, equipo es Barcelona vs Real Madrid, marcador es 0 - 0 ?
  #11 (permalink)  
Antiguo 04/02/2014, 16:31
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Crear el siguiente array con php

Si lees la página que te indiqué, verás que la función ordenará los datos sin perder sus claves, así que será tu código el que sea capaz o no de "decir" el contenido de los datos.

En otras palabras, tu arreglo no perderá coherencia. Claro que habrá que ver la forma en que almacenas los datos, para que puedan ser ordenables , ya que por ejemplo la hora "09:00:00" así tal cual expresada no es del todo ordenable.
  #12 (permalink)  
Antiguo 04/02/2014, 16:36
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Respuesta: Crear el siguiente array con php

Por que no es ordenable amigo ?
  #13 (permalink)  
Antiguo 04/02/2014, 16:41
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Crear el siguiente array con php

La hora expresada en formato texto o "humano" no necesariamente podrá ser ordenada de forma adecuada, por ejemplo, si ordenas números que en realidad son texto (strings) el orden puede quedar mal, imagina que tienes los números 1,3,10,11 si están en forma de texto, el ordenamiento quedaría:

1
10
11
3
  #14 (permalink)  
Antiguo 04/02/2014, 16:48
Avatar de 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

Lo que dice ocp001a es cierto, lo más seguro sería convertir la hora a segundos y luego comparar cifras, sin embargo, para el caso de horas con el formato "HH:MM:SS", sí es aplicable el método de ordenación.

Para muestra, un botón: http://ideone.com/pUoiaF

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
  #15 (permalink)  
Antiguo 04/02/2014, 16:49
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Respuesta: Crear el siguiente array con php

Pero entonces cual seria la solucion a ese problema amigo ?
  #16 (permalink)  
Antiguo 04/02/2014, 16:51
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
De acuerdo Respuesta: Crear el siguiente array con php

Gracias alexis por ayudarnos, seguire intentando ordenar el array y cualquier duda les pregunto gracias a los 2
  #17 (permalink)  
Antiguo 04/02/2014, 17:07
Avatar de 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

Si te sirve de ayuda, este es un ejemplo mediante el cual inserto los datos de un array dentro de otro y los ordeno según uno de sus valores:

Código PHP:
Ver original
  1. $array = array();
  2.  
  3. $datos = array(
  4.                 array("nombre" => "Juan", "edad" => 28, "peso" => 43),
  5.                 array("nombre" => "Martha", "edad" => 43, "peso" => 64),
  6.                 array("nombre" => "Elena", "edad" => 34, "peso" => 75)
  7.         );
  8.  
  9. $i = 0;
  10.  
  11. foreach ($datos as $datos_pers){
  12.     $array[$i]["nombre"] = $datos_pers["nombre"];
  13.     $array[$i]["extra"] = $datos_pers["edad"] . "," . $datos_pers["peso"];
  14.     $i++;
  15. }
  16.  
  17. sort($array);
  18. print_r($array);

El resultado es este:

Código HTML:
Ver original
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [nombre] => Elena
  6.             [extra] => 34,75
  7.         )
  8.  
  9.     [1] => Array
  10.         (
  11.             [nombre] => Juan
  12.             [extra] => 28,43
  13.         )
  14.  
  15.     [2] => Array
  16.         (
  17.             [nombre] => Martha
  18.             [extra] => 43,64
  19.         )
  20.  
  21. )

Básicamente, cada array dentro del array $datos, equivale a cada registro que pudiera existir en la tabla de una BD:

Cita:
NOMBRE EDAD PESO
...Juan........28......43
..Martha.....43......64
..Elena.......34......75
Entonces, recorro el array $datos y asigno cada dato a $array, pero como te darás cuenta, lo trato como un array bidimensional o matriz, en otras palabras, por cada posición dentro de $array, habrá otro array en donde estarán albergados los datos de cada array contenido en $datos. Luego, con la función sort, ordeno los arrays contenidos dentro de $array según el primer dato que contenga cada uno de ellos, que en este caso vienen siendo los nombres, por eso es que queda ordenado alfabéticamente. En tu caso, el primer dato que insertarías sería la hora y realizas la ordenación del mismo modo.

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
  #18 (permalink)  
Antiguo 04/02/2014, 17:14
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Respuesta: Crear el siguiente array con php

Amigo ya me funciono la parte donde almaceno los datos, mira:
Código PHP:
$test "<a href='#' rel='".$IdGames."-".$IdAgents."' onClick='openInfoWager(this);'>".$counterTickets."</a>";
array_push($arrGamesPrint$anterior['Time'], $anterior['NumGame'], $anterior['Teams'], $anterior['Score'], $test,$counterRisk$counterWinLoss); 
Ahora lo que quiero es ordenar $arrGamesPrint por el campo $anterior['Time'] y recorrerlo para poder armar una tabla y darle echo. Me ayudan amigos ?
  #19 (permalink)  
Antiguo 04/02/2014, 17:27
Avatar de 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

Haz un print_r($arrGamesPrint) y muéstranos el resultado para saber cómo está organizado el array y a partir de ellos se pueda ordenar en base a alguno de sus contenidos.
__________________
«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
  #20 (permalink)  
Antiguo 04/02/2014, 17:38
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Exclamación Respuesta: Crear el siguiente array con php

Amigo, ahorita me esta presentando lo siguiente:
Cita:
Array ( [0] => 06:54:21 [1] => 26117/26118 [2] => 1H AC CHIEVO VERONA@1H SS LAZIO ROMA [3] => 0 - 1 [4] => 4 [5] => 80 [6] => 897.29 [7] => 12:49:38 [8] => 26233/26234 [9] => 1H ATHLETIC BILBAO@1H REAL MADRID [10] => 0 - 0 [11] => 21 [12] => 963.55 [13] => 229.27 [14] => 08:49:44 [15] => 26225/26226 [16] => 1H BETIS SEVILLA@1H RCD ESPANYOL BARCELONA [17] => 0 - 0 [18] => 6 [19] => 109 [20] => 0 [21] => 06:48:55 [22] => 26129/26130 [23] => 1H CALCIO CATANIA@1H AS LIVORNO [24] => 0 - 0 [25] => 2 [26] => 8 [27] => 0 [28] => 16:58:33 [29] => 1101/1102 [30] => 1H SEATTLE SEAHAWKS@1H DENVER BRONCOS [31] => 22 - 0 [32] => 223 [33] => 21321.8 [34] => 6405.31 [35] => 13:52:28 [36] => 27233/27234 [37] => 2H ATHLETIC BILBAO@2H REAL MADRID [38] => 1 - 1 [39] => 9 [40] => 195 [41] => 1012.63 [42] => 18:55:37 [43] => 2101/2102 [44] => 2H SEATTLE SEAHAWKS@2H DENVER BRONCOS [45] => 21 - 8 [46] => 202 [47] => 34270.58 [48] => 12579.73 [49] => 09:53:24 [50] => 25033/25034 [51] => ARSENAL FC@CRYSTAL PALACE [52] => 2 - 0 [53] => 13 [54] => 1540.3 [55] => -850.59 [56] => 23:52:33 [57] => 25121/25122 [58] => AS ROMA@FC PARMA [59] => [60] => 2 [61] => 11.3 [62] => 0 [63] => 11:52:23 [64] => 25229/25230 [65] => ATLETICO MADRID@REAL SOCIEDAD [66] => 4 - 0 [67] => 12 [68] => 383.5 [69] => 706.33 [70] => 05:03:30 [71] => 25221/25222 [72] => CF ELCHE@UD ALMERIA [73] => 1 - 0 [74] => 2 [75] => 132 [76] => 287.58 [77] => 08:38:01 [78] => 25373/25374 [79] => HERTHA BSC BERLIN@1. FC NÜRNBERG [80] => 1 - 3 [81] => 11 [82] => 263.4 [83] => -26.1 [84] => 13:46:09 [85] => 25137/25138 [86] => JUVENTUS TURIN@INTER MILANO [87] => 3 - 1 [88] => 9 [89] => 372.1 [90] => 62.32 [91] => 18:57:46 [92] => 101/102 [93] => SEATTLE SEAHAWKS@DENVER BRONCOS [94] => 43 - 8 [95] => 551 [96] => 62372.4 [97] => -8468.87 )
Disculpa el desorden pero eso fue lo que me devolvio el PHP...
  #21 (permalink)  
Antiguo 04/02/2014, 17:56
Avatar de 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

Para que se imprime el código indentado, hazlo así:

Código PHP:
Ver original
  1. echo "<pre>";
  2. print_r($arrGamesPrint);
  3. echo "</pre>";

Y por favor, usa el highlight adecuado.
__________________
«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
  #22 (permalink)  
Antiguo 04/02/2014, 18:01
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Exclamación Respuesta: Crear el siguiente array con php

Aca tienes lo que me pides amigo:
Cita:
Array
(
[0] => 06:54:21
[1] => 26117/26118
[2] => 1H AC CHIEVO VERONA@1H SS LAZIO ROMA
[3] => 0 - 1
[4] => 4
[5] => 80
[6] => 897.29
[7] => 12:49:38
[8] => 26233/26234
[9] => 1H ATHLETIC BILBAO@1H REAL MADRID
[10] => 0 - 0
[11] => 21
[12] => 963.55
[13] => 229.27
[14] => 08:49:44
[15] => 26225/26226
[16] => 1H BETIS SEVILLA@1H RCD ESPANYOL BARCELONA
[17] => 0 - 0
[18] => 6
[19] => 109
[20] => 0
[21] => 06:48:55
[22] => 26129/26130
[23] => 1H CALCIO CATANIA@1H AS LIVORNO
[24] => 0 - 0
[25] => 2
[26] => 8
[27] => 0
[28] => 16:58:33
[29] => 1101/1102
[30] => 1H SEATTLE SEAHAWKS@1H DENVER BRONCOS
[31] => 22 - 0
[32] => 223
[33] => 21321.8
[34] => 6405.31
[35] => 13:52:28
[36] => 27233/27234
[37] => 2H ATHLETIC BILBAO@2H REAL MADRID
[38] => 1 - 1
[39] => 9
[40] => 195
[41] => 1012.63
[42] => 18:55:37
[43] => 2101/2102
[44] => 2H SEATTLE SEAHAWKS@2H DENVER BRONCOS
[45] => 21 - 8
[46] => 202
[47] => 34270.58
[48] => 12579.73
[49] => 09:53:24
[50] => 25033/25034
[51] => ARSENAL FC@CRYSTAL PALACE
[52] => 2 - 0
[53] => 13
[54] => 1540.3
[55] => -850.59
[56] => 23:52:33
[57] => 25121/25122
[58] => AS ROMA@FC PARMA
[59] =>
[60] => 2
[61] => 11.3
[62] => 0
[63] => 11:52:23
[64] => 25229/25230
[65] => ATLETICO MADRID@REAL SOCIEDAD
[66] => 4 - 0
[67] => 12
[68] => 383.5
[69] => 706.33
[70] => 05:03:30
[71] => 25221/25222
[72] => CF ELCHE@UD ALMERIA
[73] => 1 - 0
[74] => 2
[75] => 132
[76] => 287.58
[77] => 08:38:01
[78] => 25373/25374
[79] => HERTHA BSC BERLIN@1. FC NÜRNBERG
[80] => 1 - 3
[81] => 11
[82] => 263.4
[83] => -26.1
[84] => 13:46:09
[85] => 25137/25138
[86] => JUVENTUS TURIN@INTER MILANO
[87] => 3 - 1
[88] => 9
[89] => 372.1
[90] => 62.32
[91] => 18:57:46
[92] => 101/102
[93] => SEATTLE SEAHAWKS@DENVER BRONCOS
[94] => 43 - 8
[95] => 551
[96] => 62372.4
[97] => -8468.87
)
  #23 (permalink)  
Antiguo 04/02/2014, 18:51
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Exclamación Respuesta: Crear el siguiente array con php

Amigo,

si debo cambiar la estructura del array para que sea mas facil de manejar seria aca:
Código PHP:
array_push($arrGamesPrint$anterior['Time'], $anterior['NumGame'], $anterior['Teams'], $anterior['Score'], $test,$counterRisk$counterWinLoss); 
Dime como podriamos cambiarla para que sea mas facil de aplicar el sort.
  #24 (permalink)  
Antiguo 04/02/2014, 19:41
Avatar de 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

El problema es que teniendo el array así, es un poco complicado realizar el ordenamiento de datos. Como veo que los datos provienen del array $anterior, te sugiero que hagas con él lo que te sugerí en el ejemplo que expliqué más arriba.

Inténtalo y nos dices cómo te fue, 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
  #25 (permalink)  
Antiguo 04/02/2014, 19:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: array_push() no me funciona bien...?

Lee sobre variables globales, te pueden ayudar para lo que quieres hacer.

Saludos.
  #26 (permalink)  
Antiguo 04/02/2014, 21:08
Avatar de 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
  #27 (permalink)  
Antiguo 05/02/2014, 10:20
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
De acuerdo Respuesta: Crear el siguiente array con php

Gracias amigo por tu ayuda, apenas vengo leyendo tu mensaje, te agradezco mucho tu ayuda, voy a ponerme a pasarlo a mi código y te comento como me fue ...
  #28 (permalink)  
Antiguo 05/02/2014, 10:44
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Respuesta: Crear el siguiente array con php

Amigo me funciona pero hasta cierto punto en algunos casos valores como $tickets, $counterRisk y $counterWinLoss se pierden y salen hasta el final, Tengo algunas dudas, por ejemplo:

Para que sirve esto:
Código PHP:
if ($i == 7)
  
$i = -1
Y otra duda que tengo es que necesito imprimir algo como esto:
Código PHP:
$response .= "<tr>";
 
$response .= "<td>".$anterior['Time']."</td>";
 
$response .= "<td>".$anterior['NumGame']."</td>";
 
$response .= "<td>".$anterior['Teams']."</td>";
 
$response .= "<td>".$anterior['Score']."</td>";
 
$response .= "<td><a href='#' rel='".$IdGames."-".$IdAgents."' onClick='openInfoWager(this);'>".$counterTickets."</a></td>";
 
$response .= "<td>$".$counterRisk."</td>";
 
$response .= "<td>".$counterWinLoss."</td>";
 
$response .= "<td>".$todayFigure."</td>";
$response .= "</tr>"
Entonces como hago para en este foreach que hicistes hacer referencia justamente a un dato en especifico del array por ejemplo: $o['Time'] se puede hacer o dime amigo como lo hago ?
  #29 (permalink)  
Antiguo 05/02/2014, 11:16
Avatar de 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

Cita:
Iniciado por RyanTylor Ver Mensaje
Amigo me funciona pero hasta cierto punto en algunos casos valores como $tickets, $counterRisk y $counterWinLoss se pierden y salen hasta el final.
Sería ideal que cada vez que actualices el código, nos lo muestres para ver en qué estás fallando, porque la verdad es que no debería pasar lo que mencionas.

Cita:
Iniciado por RyanTylor Ver Mensaje
Para que sirve esto:
Código PHP:
if ($i == 7)
  
$i = -1
Como cada partido tiene 7 datos, entonces, luego de leer 7 datos del array, se formará uno nuevo para insertar los 7 siguientes y así sucesivamente.

Cita:
Iniciado por RyanTylor Ver Mensaje
Y otra duda que tengo es que necesito imprimir algo como esto:
Código PHP:
$response .= "<tr>";
 
$response .= "<td>".$anterior['Time']."</td>";
 
$response .= "<td>".$anterior['NumGame']."</td>";
 
$response .= "<td>".$anterior['Teams']."</td>";
 
$response .= "<td>".$anterior['Score']."</td>";
 
$response .= "<td><a href='#' rel='".$IdGames."-".$IdAgents."' onClick='openInfoWager(this);'>".$counterTickets."</a></td>";
 
$response .= "<td>$".$counterRisk."</td>";
 
$response .= "<td>".$counterWinLoss."</td>";
 
$response .= "<td>".$todayFigure."</td>";
$response .= "</tr>"
Entonces como hago para en este foreach que hicistes hacer referencia justamente a un dato en especifico del array por ejemplo: $o['Time'] se puede hacer o dime amigo como lo hago ?
Como te expliqué en la respuesta anterior, con el algoritmo que propuse (el último), creo un array que contendrá arrays, en donde cada uno de estos contendrá la información de cada partido. La estructura que tiene con los datos de los 5 partidos que le asigné, es así:

Código HTML:
Ver original
  1. Array
  2. (
  3.     [06:48:55] => Array
  4.         (
  5.             [5] => 06:48:55
  6.             [6] => 26129/26130
  7.             [7] => 1H CALCIO CATANIA@1H AS LIVORNO
  8.             [0] => 0 - 0
  9.             [1] => 2
  10.             [2] => 8
  11.             [3] => 0
  12.         )
  13.  
  14.     [06:54:21] => Array
  15.         (
  16.             [0] => 06:54:21
  17.             [1] => 26117/26118
  18.             [2] => 1H AC CHIEVO VERONA@1H SS LAZIO ROMA
  19.             [3] => 0 - 1
  20.             [4] => 4
  21.             [5] => 80
  22.             [6] => 897.29
  23.         )
  24.  
  25.     [08:49:44] => Array
  26.         (
  27.             [6] => 08:49:44
  28.             [7] => 26225/26226
  29.             [0] => 1H BETIS SEVILLA@1H RCD ESPANYOL BARCELONA
  30.             [1] => 0 - 0
  31.             [2] => 6
  32.             [3] => 109
  33.             [4] => 0
  34.         )
  35.  
  36.     [12:49:38] => Array
  37.         (
  38.             [7] => 12:49:38
  39.             [0] => 26233/26234
  40.             [1] => 1H ATHLETIC BILBAO@1H REAL MADRID
  41.             [2] => 0 - 0
  42.             [3] => 21
  43.             [4] => 963.55
  44.             [5] => 229.27
  45.         )
  46.  
  47.     [16:58:33] => Array
  48.         (
  49.             [4] => 16:58:33
  50.             [5] => 1101/1102
  51.             [6] => 1H SEATTLE SEAHAWKS@1H DENVER BRONCOS
  52.             [7] => 22 - 0
  53.             [0] => 223
  54.             [1] => 21321.8
  55.             [2] => 6405.31
  56.         )
  57.  
  58. )

Entonces, es por eso que con ayuda de bucles voy mostrando la información que contiene cada dato de cada array del array principal que en este caso es $new.
__________________
«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
  #30 (permalink)  
Antiguo 05/02/2014, 11:21
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Exclamación Respuesta: Crear el siguiente array con php

Amigo inicie un nuevo foro con un titulo mas descriptivo de lo que quiero, alli puse mi codigo actualizado que creo que es mas facil de manejar o realizar lo que quiero, espero me sigas hechando la mano

Etiquetas: campos, fecha, siguiente, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:55.