Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/02/2013, 16:54
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: Tabla (alternando colores de celdas)

Modificado para que sume las filas y columnas, que es lo único que igual es más complicado con CSS3.. (aparte, es más para que se vea la lógica del asunto)
Código PHP:
Ver original
  1. //$arr=array(array(2,3,4,5),array(6,7,8,9),array(10,11,12,13));
  2. $arr=array(array(2,3,4,5,9),array(6,7,8,9,10),array(10,11,12,13,21));
  3. // Se cuenta el numero de columnas
  4. $n=count($arr[0]);
  5. // Este offset sirve para evitar que , al cambiar de fila, una celda negra quede
  6. // bajo otra negra.Esto ocurre si el numero de columnas es par.
  7. $off= ($n%2);
  8.  
  9. $cells=0;
  10. // Se preparan los estilos.Esto deberian ser clases css..
  11. $styles=array('background-color:white;color:black','background-color:black;color:white');
  12. echo "<table border=1>";
  13. $colSums=array();
  14.  
  15. for($k=0;$k<count($arr);$k++) /* Primer for, que itera por filas */
  16. {
  17.       $rowSum=0;
  18.       echo "<tr>";
  19.       for($j=0;$j<count($arr[$k])-1;$j++,$cells++) /* segundo for, que itera por cada celda de la fila */      
  20.      {
  21.               $rowSum+=$arr[$k][$j];
  22.               echo "<td style=\"".$styles[$cells%2]."\">".$arr[$k][$j]."</td>";      
  23.                   $colSums[$j]+=$arr[$k][$j];
  24.       }
  25.       // El ultimo valor del array debe ser el total.
  26.      echo "<td style=\"".$styles[0]."\">".$rowSum."</td></tr>";            
  27.      $cells+=$off;
  28. }
  29. echo "<tr><td style=\"".$styles[0]."\">".implode("</td><td style=\"".$styles[0]."\">",$colSums)."</td></tr>";
  30. echo "</table>";