Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Proceso bucles tonto en php?

Estas en el tema de Proceso bucles tonto en php? en el foro de PHP en Foros del Web. Buenas a todos, Tengo esta matriz: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original Array (     [1] => Array         (   ...
  #1 (permalink)  
Antiguo 16/03/2015, 15:25
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Proceso bucles tonto en php?

Buenas a todos,

Tengo esta matriz:
Código HTML:
Ver original
  1. Array
  2. (
  3.     [1] => Array
  4.         (
  5.             [0] => algo
  6.             [1] => 4.5
  7.             [2] => 1
  8.             [3] => 1.5
  9.             [4] => 0
  10.         )
  11.  
  12.     [2] => Array
  13.         (
  14.             [0] => otro
  15.             [1] => -0.5
  16.             [2] => 6
  17.             [3] => 7.5
  18.             [4] => 0
  19.         )
  20.  
  21.     [3] => Array
  22.         (
  23.             [0] => benficio
  24.             [1] => 11.5
  25.             [2] => -7
  26.             [3] => 10.5
  27.             [4] => 0
  28.         )
  29.  
  30. )
y tengo este codigo php:
Código PHP:
Ver original
  1. for( $i = 0 ; $i <= count($mat) ; $i++ ){
  2.                 for( $j = 0 ; $j <= count($mat[$i]) ; $j++ ){
  3.  
  4.                     if( $i === 0 ){
  5.                         echo 'aaaa';
  6.                     } else {
  7.                         // echo $i;
  8.                         if($j == 0){
  9.                             $res[$i][$j] = $mat[$i][$j];
  10.                         }else{
  11.                             if( $i == $minY ){
  12.                                 $res[$i][$j] = $mat[$minY][$j] * $oper;
  13.                             } else {
  14.                                 $res[$i][$j] = ($mat[$minY][$j] * $oper) + $mat[$i][$j];
  15.                             }                          
  16.                         }
  17.                     }
  18.                 }
  19.             }

Lo que hago es correr los bucles pero cuando el primer bucle $i esté en cero me imprima 'aaaaa'; el caso es que como ven el codigo php si imprimer pero si en el segundo bucle cambio a:
Código PHP:
Ver original
  1. ....
  2. for( $j = 0 ; $j < count($mat[$i]) ; $j++ ){....
o
Código PHP:
Ver original
  1. ....
  2. for( $j = 0 ; $j <= count($mat[$i]) -1 ; $j++ ){...
la condicional
Código PHP:
Ver original
  1. ...
  2.                     if( $i === 0 ){
  3.                         echo 'aaaa';
  4.                     } else {
  5. ....
Ni lo ve, imagino que hay alguna explicación, cuál?
Obviamente puedo solucionar de otra manera mi logica pero a manera de conocer mejor php, A QUE SE DEBE ESTO?
  #2 (permalink)  
Antiguo 16/03/2015, 16:39
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Proceso bucles tonto en php?

Operador de comparación: ==

Y tienes puesto ===
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #3 (permalink)  
Antiguo 16/03/2015, 17:49
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Proceso bucles tonto en php?

<saludos>
Y que tiene que ver que se use o no el comparador terciario?
Con eso solo se asegura que tengan el mismo valor y que sean del mismo tipo.

Acabo de probar el código y funciona correctamente.

Ahora, la pregunta es, lo que quieres lograr es que siempre que recorra
uno de los indices, cuando pase por la primera posición (que sería la 0)
imprima el 'aaa'?

Si es así, tienes un problema de lógica, porque?
Pues porque $i empieza en 0 en efecto, pero luego se va incrementando,
por ende, la condición solo será verdadera una vez.

Solución? Cambiar $i por $j, pero esa condición ya está en el else.

Así que revisa con calma el código, y mejoralo.

</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 17/03/2015, 08:58
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Proceso bucles tonto en php?

Ok aveces, te encierras en la lógica que noves a tu alrededor.

El problema esta en:

Código PHP:
Ver original
  1. for( $i = 0 ; $i <= count($mat) ; $i++ ){
  2.                 for( $j = 0 ; $j <= count($mat[$i]) ; $j++ ){

aceptando y agregando un poco mas al comentario de mortiprogramador (gracias), $i efectivamente inicia en cero, $j tambien inicia en cero pero va hasta el máximo de $mat[$i] el cual es cero, si pongo la condición "<" si lo ve pero solo una ves puesto que el count($mat[$i]) es uno y cero es menor a uno.

Es un tema mio de lógica, gracias a todos

Etiquetas: bucles, proceso
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 07:21.