Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como crear el siguiente array con PHP ?

Estas en el tema de Como crear el siguiente array con PHP ? en el foro de PHP en Foros del Web. Saludos compañeros del foro, Estoy haciendo un while donde recorro los datos devueltos por la db, por cuestiones de fuerza mayor en algunos casos el ...
  #1 (permalink)  
Antiguo 27/01/2014, 14:57
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Como crear el siguiente array con PHP ?

Saludos compañeros del foro,

Estoy haciendo un while donde recorro los datos devueltos por la db, por cuestiones de fuerza mayor en algunos casos el agrupamiento de datos en mi select no se da correctamente, para ello con este codigo quiero almacenar en un array los juegos de forma agrupada, cuando pregunto por previous son los datos del dato anterior, creo tener algunas cosas malas en mi codigo, alguna ayudita ??
Código PHP:
$arrGames = array();
                        
$previousNumGame "";
                        
$previousTeams   "";
                        
$previousTime    "";
                        
$previousScore   "";
                        
$counterTickets  0;
                        
$counterRisk     0;
                        
$counterWinLoss  0;
                        
$IdGames         "";
                        while(
$dataGames $strDataGames->fetch(PDO::FETCH_ASSOC)){
                            if(
strlen(trim($previousNumGame)) > && strlen(trim($previousTeams)) > ){
                              if(
$dataGames['NumGame'] == $previousNumGame && $dataGames['Teams'] == $previousTeams){
                                 
$previousTime    =  $dataGames['Time'];
                                 
$previousScore   =  $dataGames['Score'];
                                 
$counterTickets  =  $counterTickets $dataGames['Tickets'];
                                 
$counterRisk     =  $counterRisk $dataGames['Risk'];
                                 
$counterWinLoss  =  $counterWinLoss $dataGames['WinLoss'];
                                 
$IdGames .= $dataGames['IdGame']."-"
                              }else{
                                 
$IdGames substr($IdGames, -1);
                                 
array_push($arrGames,$previousTime,$previousNumGame,$previousTeams,$previousScore,$counterTickets,$counterRisk,$counterWinLoss$IdGames); // aca la duda...
                                 
$counterTickets  =  0;
                                 
$counterRisk     =  0;
                                 
$counterWinLoss  =  0;
                                 
$IdGames         =  "";
                              }  
                            }else{
                                 
$previousNumGame $dataGames['NumGame'];
                                 
$previousTeams   $dataGames['Teams'];    
                                 
$previousTime    $dataGames['Time'];
                                 
$previousScore   $dataGames['Score'];
                                 
$counterTickets  =  $counterTickets $dataGames['Tickets'];
                                 
$counterRisk     =  $counterRisk $dataGames['Risk'];
                                 
$counterWinLoss  =  $counterWinLoss $dataGames['WinLoss'];
                                 
$IdGames .= $dataGames['IdGame']."-"
                            }
                        }
//end while
                        
                        
error_log("El array es: ".print_r($arrGamestrue)); 
Nota: al ver en consola el error_log me sale varias veces un solo juego, ademas no me suma bien las operaciones que estoy haciendo.
  #2 (permalink)  
Antiguo 27/01/2014, 17:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como crear el siguiente array con PHP ?

Creo que si muestras la estructura del array que pretendes obtener será más fácil tratar de ayudarte, porque con array_push($arrGames, muchas_variables_aquí); lo único que logras es agregar cada una de esas variables como otro elemento de $arrGames.

Si tienes dudas, revisa el manual: http://www.php.net/manual/es/function.array-push.php
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 28/01/2014, 09:35
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Respuesta: Como crear el siguiente array con PHP ?

Gracias por tu respuesta amigo,

mira la idea que tengo es que el while recorra todos los datos devueltos por la base de datos, el while y los datos los obtengo así:
Código PHP:
while($dataGames $strDataGames->fetch(PDO::FETCH_ASSOC)){
     
$dataGames['Time'];
         
$dataGames['NumGame'];
     
$dataGames['Teams'];
     
$dataGames['Score'];
     
$dataGames['Tickets'];
     
$dataGames['Risk'];
     
$dataGames['WinLoss'];
     
$dataGames['IdGame'];  

Esos son todos los datos que me devuelve la consulta, la consulta esta ordenada por Teams por ese motivo los datos vienen corridos de la siguiente forma
Cita:
13:40:55 1117/1118 1H SAN DIEGO CHARGERS@1H DENVER BRONCOS 0 - 14 1 110,00 -110,00 368790
13:40:55 1117/1118 1H SAN DIEGO CHARGERS@1H DENVER BRONCOS 0 - 14 1 315,00 300,00 368790
13:40:55 1117/1118 1H SAN DIEGO CHARGERS@1H DENVER BRONCOS 0 - 14 1 660,00 -660,00 368790
13:40:55 1117/1118 1H SAN DIEGO CHARGERS@1H DENVER BRONCOS 0 - 14 2 1840,00 -1840,00 368790
Por cuestiones de fuerza mayor no los puedo agrupar desde la consulta sql, por este motivo necesito simular el agrupamiento de estos datos en un array, siendo $dataGames['Time'] el campo llave o el nodo padre de los demás datos, así después puedo aplicar un ksort o un sort al array para ordenarlo por la hora y luego imprimirlo, los datos devueltos en mi ejemplo al agruparlo me deberian de quedar asi:

13:40:55 1117/1118 1H SAN DIEGO CHARGERS@1H DENVER BRONCOS 0 - 14 5 2925,00 -2310,00 368790

Los campos en rojo son los que debo de sumar las veces que el $dataGames['NumGame']; y $dataGames['Teams']; sean iguales al que estuvo antes en el while, una vez hecho dicha sumatoria cuando ya estos datos no sean iguales al que estuvo entes en el while los agrego en un array de la forma que explique anteriormente... alguna ayudita al respecto??
  #4 (permalink)  
Antiguo 28/01/2014, 17:04
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como crear el siguiente array con PHP ?

Y como sería la estructura del array final?
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: select, siguiente
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 13:49.