Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/01/2012, 14:56
meisok
 
Fecha de Ingreso: enero-2012
Ubicación: Serra do Galiñeiro
Mensajes: 20
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: array multidimensional con sumas

Hola andresdzphp, gracias por responder!
He intentado usar tu código, pero no lo conseguí, me da que estaba formando mal el array que le pasaba.
Encontré una solucion, no muy elegante y menos práctica aún, pero...funciona

Código PHP:
Ver original
  1. $ceros=0;
  2. $unos=0;
  3. while($data=mysql_fetch_array($resultado)) {
  4.   if($data[1]==0){
  5.     if($ceros==0 and $unos==1){
  6.       $ceros++;
  7.       $objeto[1][]='x';
  8.       $unos=0;
  9.     }else{
  10.       $ceros++;
  11.     }
  12.   }else{
  13.     if($ceros==0){
  14.       $objeto[1][]='x';
  15.     }else{
  16.       $objeto[1][]=$ceros;
  17.       $ceros=0;
  18.       $unos++;
  19.     }
  20.   }
  21. }

en este ejemplo solo proceso el primer campo de datos de la tabla, luego tendría que repetir este trozo

Código PHP:
Ver original
  1. if($data[1]==0){
  2.     if($ceros==0 and $unos==1){
  3.       $ceros++;
  4.       $objeto[1][]='x';
  5.       $unos=0;
  6.     }else{
  7.       $ceros++;
  8.     }
  9.   }else{
  10.     if($ceros==0){
  11.       $objeto[1][]='x';
  12.     }else{
  13.       $objeto[1][]=$ceros;
  14.       $ceros=0;
  15.       $unos++;
  16.     }
  17.   }

40 y pico veces mas pero cambiando el número de índice y las variables que cuentan los unos y los ceros, si alguno me indicais alguna alternativa mas elegante, realizaría mas pruebas antes de decantarme por escribir el tocho.

Ya he probado a meter el while dentro de un for, para controlar las repeticiones por campo

Código PHP:
Ver original
  1. $runos=0;
  2. $rceros=0;
  3. for($r=1; $r<=50; $r++){
  4. while($rdata=mysql_fetch_array($rresultado)) {
  5.   if($rdata[$r]==0){
  6.     if($rceros==0 and $runos==1){
  7.       $rceros++;
  8.       $robjeto[$r][]='x';
  9.       $runos=0;
  10.     }else{
  11.       $rceros++;
  12.     }
  13.   }else{
  14.     if($rceros==0){
  15.       $robjeto[$r][]='x';
  16.     }else{
  17.       $robjeto[$r][]=$rceros;
  18.       $rceros=0;
  19.       $runos++;
  20.     }
  21.   }
  22. }
  23. }


pero no funciona, solo hace el while el primer ciclo del for y me guarda un único array en el primer indice, ya no se que probar, alguna idea?


Saludos.