Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sentencia For anidada 2 variables

Estas en el tema de Sentencia For anidada 2 variables en el foro de PHP en Foros del Web. A ver si alguien me puede explicar esto y como resolverlo: Código PHP: $prx = 0 ; $w = 0 ; $prn = 4 ; ...
  #1 (permalink)  
Antiguo 10/06/2013, 23:22
 
Fecha de Ingreso: enero-2013
Mensajes: 62
Antigüedad: 11 años, 11 meses
Puntos: 0
Sentencia For anidada 2 variables

A ver si alguien me puede explicar esto y como resolverlo:

Código PHP:
$prx=0;
$w=0;
$prn=4;


for (
$prx=0$prx<($prn); $prx++ ) {

$w=($prx+1);

echo 
"$prx con $w <br>";

for (
$w=1$w<($prn); $w++ ) {

echo 
"$prx Y $w <br>";


}} 
Escribo este sencillo código, pero obtengo este resultado que no es el que espero:

0 con 1 Este es el valor esperado para $w
0 Y 1
0 Y 2
0 Y 3
1 con 2 Este es el valor esperado para $w
1 Y 1 ----- ¿Porque acá $w vale 1?
1 Y 2
1 Y 3
2 con 3 Este es el valor esperado para $w
2 Y 1 ----- ¿Porque acá $w vale 1?
2 Y 2 ----- ¿Porque acá $w vale 2?
2 Y 3
3 con 4 Este es el valor esperado para $w
3 Y 1 ----- ¿Porque acá $w vale 1?
3 Y 2 ----- ¿Porque acá $w vale 2?
3 Y 3 ----- ¿Porque acá $w vale 3?

Pues yo necesito que respete el valor que tiene el valor esperado
  #2 (permalink)  
Antiguo 10/06/2013, 23:59
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: Sentencia For anidada 2 variables

Mejor di lo que quieres hacer.......es imposible adivinar

Estube mirando si hacias algo "ilegal" como redefinir una variable de lazo dentro del for pero no... asi que se comporta como es esperado!!!
__________________
Salu2!
  #3 (permalink)  
Antiguo 11/06/2013, 00:10
 
Fecha de Ingreso: enero-2013
Mensajes: 62
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Sentencia For anidada 2 variables

esto lo uso para comparar varios datos del mismo campo, de la siguiente manera

$dato=array ("dato1", "dato2", "dato3", dato4);

tengo que comparar el dato1 contra el dato2 contra el dato3 y contra el dato 4
luego el dato2 contra el dato3 y contra el dato4
luego el dato3 y contra el dato4

entonces uso el proceso anterior para usar dato[$prx] contra dato[$w] que es el $w igual a $prx+1

pero $w al volver a 1 me desarma las comparaciones, quizas esta no sea la manera correcta de hacerlo, si tenes una forma mejor te agradeceria la ayuda
  #4 (permalink)  
Antiguo 11/06/2013, 00:12
 
Fecha de Ingreso: enero-2013
Mensajes: 62
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Sentencia For anidada 2 variables

Yo necesito que el resultado sea

0 con 1 Este es el valor esperado para $w
0 Y 1
0 Y 2
0 Y 3
1 con 2 Este es el valor esperado para $w
1 Y 2
1 Y 3
2 con 3 Este es el valor esperado para $w
2 Y 3
  #5 (permalink)  
Antiguo 11/06/2013, 04:27
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 16 años
Puntos: 6
Respuesta: Sentencia For anidada 2 variables

Lo que haces es que siempre pones $w a 1 al segundo for. El código sería así:

Código PHP:
Ver original
  1. for ($prx=0, $prn=4; $prx<($prn); $prx++ ) {
  2.     $w=($prx+1);
  3.     echo "$prx con $w <br>";
  4.     for (; $w<($prn); $w++ ) {
  5.         echo "$prx Y $w <br>";
  6.     }
  7. }
  #6 (permalink)  
Antiguo 11/06/2013, 05:18
 
Fecha de Ingreso: enero-2013
Mensajes: 62
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Sentencia For anidada 2 variables

Muchisimas Gracias, Me salvastes

Etiquetas: anidadas, for(), 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 21:54.