Foros del Web » Programando para Internet » PHP »

Pasar de Array a Tabla con formato de Columnas

Estas en el tema de Pasar de Array a Tabla con formato de Columnas en el foro de PHP en Foros del Web. Hola, tengo un array estructurado de la siguiente manera Código: Array ( [0] => Array ( [SETMANA] => 1 [KILOS] => 181584.34 [EUROS] => 876364.6 ...
  #1 (permalink)  
Antiguo 19/01/2010, 04:50
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Pasar de Array a Tabla con formato de Columnas

Hola,

tengo un array estructurado de la siguiente manera

Código:
Array
(
    [0] => Array
        (
            [SETMANA] => 1
            [KILOS] => 181584.34
            [EUROS] => 876364.6
        )

    [1] => Array
        (
            [SETMANA] => 2
            [KILOS] => 220296.9
            [EUROS] => 1029497.76
        )

    [2] => Array
        (
            [SETMANA] => 3
            [KILOS] => 242783.99
            [EUROS] => 1101250.33
        )
}
uso una función para pasarle este array y me devuelva una tabla con los datos.
El problema lo tengo en querer darle formato a los datos, es decir, que Kilos y Euros tengan un tipo de formato que no afecte a setmana.

el codigo es el siguiente

Código PHP:
Ver original
  1. function array_taula($array, $recursive = false, $return = false, $null = ' '){
  2.    
  3.       // Check Array
  4.       if(empty($array) || !is_array($array)){ return false; }
  5.       if(!isset($array[0]) || !is_array($array[0])){ $array = array($array); }
  6.      
  7.       // Inici de la Taula
  8.       $table = "<table border='1'>\n";
  9.       // La Capcelera
  10.       $table .= "\t<tr>";
  11.       // Noms de la Capcelera
  12.       foreach (array_keys($array[0]) as $heading) {
  13.    
  14.           $table .= '<th>' . $heading . '</th>';
  15.    
  16.       }
  17.       $table .= "</tr>\n"; 
  18.    
  19.       // --Les Linies de la Taula
  20.       foreach ($array as $row) {
  21.        
  22.           $table .= "\t<tr>" ;
  23.          
  24.           foreach ($row as $cell) {
  25.            
  26.               $table .= '<td align=right>';
  27.              
  28.               // Crida l'Objecte
  29.               if (is_object($cell)) { $cell = (array) $cell; }
  30.    
  31.               if ($recursive === true && is_array($cell) && !empty($cell)) {
  32.    
  33.                   // Mode Recursiu
  34.                   $table .= "\n" . array_taula($cell, true, true) . "\n";
  35.    
  36.               } else {
  37.                    
  38.                   if(is_numeric($cell)){ $cell = number_format($cell,'',',','.'); }
  39.                  
  40.                   $table .= (strlen($cell)> 0) ?
  41.    
  42.                   htmlspecialchars((string) $cell) :
  43.  
  44.                   $null;
  45.    
  46.               }
  47.               $table .= '</td>';
  48.           }
  49.           $table .= "</tr>\n";
  50.       }
  51.    
  52.       // Final de la Taula
  53.       $table .= '</table>';
  54.    
  55.       // Metode de Sortida
  56.       if ($return === false) {
  57.    
  58.           echo $table;
  59.    
  60.       } else {
  61.    
  62.           return $table;
  63.    
  64.       }
  65.    
  66.     }

Probé con el is_numeric, pero claro, hay números que no quiero darle un formato sino otro... como puedo distinguir unos de otros???

--> se me ha pasado por la cabeza, que cuando llamo a la función y le paso el array, añadirle el tipo de formato que quiero para cada columna... que opináis?
-->si es así, como puedo detectar en que columna estoy en cada momento?


Saludos y gracias
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 19/01/2010 a las 05:31
  #2 (permalink)  
Antiguo 19/01/2010, 11:10
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
Respuesta: Pasar de Array a Tabla con formato de Columnas

podrias cambiar :

if(is_numeric($cell)){ $cell = number_format($cell,'',',','.'); }


por

if(is_numeric($cell)){
if (intval($cell) != $cell){
//formato para decimal
$cell = number_format($cell,'',',','.');
}else{
//formato para semana

}
}

Etiquetas: columnas, formato, pasar, tablas
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:22.