Foros del Web » Programando para Internet » PHP »

Problema con array

Estas en el tema de Problema con array en el foro de PHP en Foros del Web. Hola, paso a contarles mi problema con los arrays que no se me ocurre una solución, espero que ustedes la tengan. Yo tengo creadas variables ...
  #1 (permalink)  
Antiguo 25/09/2011, 16:49
 
Fecha de Ingreso: mayo-2010
Mensajes: 66
Antigüedad: 13 años, 11 meses
Puntos: 2
Problema con array

Hola, paso a contarles mi problema con los arrays que no se me ocurre una solución, espero que ustedes la tengan.

Yo tengo creadas variables de arrays indefinidas:

Ejemplo

Código PHP:
for($i=1;$i<($cantidad+1);$i++) 

$row mysql_fetch_array($result);

$jugador "jugador".$i;
$
$jugador $row['jugador'];

$victorias "victorias".$i;
$
$victorias recuperar_victorias($$jugador);

$derrotas "derrotas".$i;
$
$derrotas recuperar_derrotas($$jugador);

$empates "empates".$i;
$
$empates recuperar_empates($$jugador);

$puntos "puntos".$i;
$
$puntos = $$victorias*2+$$empates;


$array "array".$i;

$
$array =array(  'jugador' => $$jugador,
       
'victorias' => $$victorias,
       
'empates' => $$empates,
     
'derrotas' => $$derrotas,
        
'puntos' => $$puntos
    
);
}
/*
En definitiva crea:
$array1 = array(  'jugador' => $$jugador,
              'victorias' => $$victorias,
               'empates' => $$empates,
                 'derrotas' => $$derrotas,
                'puntos' => $$puntos
    );
$array2 = array(  'jugador' => $$jugador,
              'victorias' => $$victorias,
               'empates' => $$empates,
                 'derrotas' => $$derrotas,
                'puntos' => $$puntos
    );

Y asi sucesivamente....
*/ 

Hasta ahi perfecto funciona correctamente pero luego necesito cada uno de estos arrays ($array1,$array2,$array3... etc) meterlos dentro de un array.

Osea que me quede asi:

Código PHP:
$resultado = array($array1,
                               
$array2,
                               
$array3,
                               
$array4
                              
); 
No me deja usar un for dentro del array y no se me ocurre como solucionarlo.

Desde ya muchas gracias, espero haberme dado a entender.

Saludos!
  #2 (permalink)  
Antiguo 25/09/2011, 16:59
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema con array

analiza tu semántica, tienes variables con nombres de array que almacenan escalares y variables variables de dichos escalares que almacenan arrays ¿?¿?¿?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 25/09/2011, 17:07
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con array

No es por ofender, 'mala onda' ni mucho menos, pero qué feo y mal estructurado código

Haz lo que te dijo maycolalvarez, analiza tu semántica. Realizar lo que prentendes es más facil de lo que piensas y te puedes ahorrar tantas vueltas :P
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #4 (permalink)  
Antiguo 25/09/2011, 17:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 66
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Problema con array

Tenes razón no eran necesarios (Funcionaba igual, pero tenes razón)... el código quedaría así

Código PHP:
for($i=1;$i<($cantidad+1);$i++) 

$row mysql_fetch_array($result);

$jugador $row['jugador'];

$victorias recuperar_victorias($jugador);


$derrotas recuperar_derrotas($jugador);

$empates recuperar_empates($jugador);

$puntos $victorias*2+$empates;


$array "array".$i;

$
$array =array(  'jugador' => $jugador,
       
'victorias' => $victorias,
       
'empates' => $empates,
     
'derrotas' => $derrotas,
        
'puntos' => $puntos
    
);
}
/*
En definitiva crea:
$array1 = array(  'jugador' => $jugador,
              'victorias' => $victorias,
               'empates' => $empates,
                 'derrotas' => $derrotas,
                'puntos' => $puntos
    );
$array2 = array(  'jugador' => $jugador,
              'victorias' => $victorias,
               'empates' => $empates,
                 'derrotas' => $derrotas,
                'puntos' => $puntos
    );

Y asi sucesivamente....
*/ 

Pero aun así, el problema es el mismo no se como generar este

Código PHP:
$resultado = array($array1,$array2,....); 
Gracias.
  #5 (permalink)  
Antiguo 25/09/2011, 17:12
 
Fecha de Ingreso: mayo-2010
Mensajes: 66
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Problema con array

Cita:
Iniciado por Sourcegeek Ver Mensaje
No es por ofender, 'mala onda' ni mucho menos, pero qué feo y mal estructurado código

Haz lo que te dijo maycolalvarez, analiza tu semántica. Realizar lo que prentendes es más facil de lo que piensas y te puedes ahorrar tantas vueltas :P
No me ofendes, tenes razón, es que es una página para boludear un rato y quize hacerlo bien rápido pero me salío mal jaja...

Saludos!
  #6 (permalink)  
Antiguo 25/09/2011, 17:18
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con array

Puedes hacer algo así:
Código PHP:
Ver original
  1. /* Acá el codigo del bucle, las asignaciones, etc... */
  2.     $array = "array".$i;
  3.  
  4.     $$array =array(  'jugador' => $jugador,
  5.            'victorias' => $victorias,
  6.            'empates' => $empates,
  7.          'derrotas' => $derrotas,
  8.             'puntos' => $puntos
  9.         );
  10.     }
  11.    
  12.     $final[] = $$array; // Esta es la nueva linea que necesitas
  13. }
  14.  
  15. echo '<pre>'.print_r($final, true);

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #7 (permalink)  
Antiguo 25/09/2011, 17:33
 
Fecha de Ingreso: mayo-2010
Mensajes: 66
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Problema con array

Cita:
Iniciado por Sourcegeek Ver Mensaje
Puedes hacer algo así:
Código PHP:
Ver original
  1. /* Acá el codigo del bucle, las asignaciones, etc... */
  2.     $array = "array".$i;
  3.  
  4.     $$array =array(  'jugador' => $jugador,
  5.            'victorias' => $victorias,
  6.            'empates' => $empates,
  7.          'derrotas' => $derrotas,
  8.             'puntos' => $puntos
  9.         );
  10.     }
  11.    
  12.     $final[] = $$array; // Esta es la nueva linea que necesitas
  13. }
  14.  
  15. echo '<pre>'.print_r($final, true);

Saludos!
Muchas gracias, me funciono de maravilla.

Pero tengo dudas sobre como es que funciona, si no es mucha molestias...
¿Por qué se van acumulando los arrays en $final[] y no se remplezan a medida que se repite el bucle?

Nuevamente gracias, me solucionaste el problema

Saludos!
  #8 (permalink)  
Antiguo 25/09/2011, 17:38
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con array

Eso es lo que significan los corchetes

El poner una variable acompañada de corchetes, quiere decir que tomará un índice no-existente. Entonces, si por ejemplo, $foo tiene los índices 0, 1, 2, al poner $foo[] = 'hola', 'hola' tomará el índice siguiente: 3

Ejemplo:
Código PHP:
Ver original
  1. $foo[] = 'hola'; // Tomará el indice 0 porque no existe aún
  2. $foo[1] = 'adios'; // Aquí le establecimos un índice, por lo que tomará tal
  3. $foo[] = 'foo'; // Como 0 y 1 ya existen, tomará el siguiente: 2

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #9 (permalink)  
Antiguo 25/09/2011, 17:48
 
Fecha de Ingreso: mayo-2010
Mensajes: 66
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Problema con array

Comprendo, una explicación muy buena y utíl

Que tengas exitos!

Saludos!

Etiquetas: mysql, variables
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 08:21.