Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/09/2009, 22:29
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 6 meses
Puntos: 214
Respuesta: Contar valores de un arreglo multidimensional por llaves (keys)

Hola
Bueno, propongo esto aunque el código me parece algo extenso, debe
haber un mejor modo pero pues ando corto de inspiración

Espero te sirva

Saludos

Código php:
Ver original
  1. <?php
  2.  
  3. $distribucion[4][1]["DBL"] = "ADT";
  4. $distribucion[4][2]["DBL"] = "ADT";
  5. $distribucion[4][3]["DBL"] = "ADT";
  6. $distribucion[4][4]["DBL"] = "CHD";
  7.  
  8. $distribucion[5][1]["DBL"] = "ADT";
  9. $distribucion[5][2]["DBL"] = "ADT";
  10. $distribucion[5][3]["DBL"] = "ADT";
  11. $distribucion[5][4]["DBL"] = "CHD";
  12.  
  13. $distribucion[10][1]["DBL"] = "ADT";
  14. $distribucion[10][2]["DBL"] = "ADT";
  15. $distribucion[10][3]["DBL"] = "ADT";
  16. $distribucion[10][4]["DBL"] = "ADT";
  17. $distribucion[10][5]["TPL"] = "ADT";
  18. $distribucion[10][6]["TPL"] = "ADT";
  19. $distribucion[10][7]["TPL"] = "CHD";
  20.  
  21.  
  22. foreach($distribucion as $idgrupo=>$posiciones){
  23.     //Variables que manejaran el total de cada habitacion
  24.     $totalSGL = 0;
  25.     $totalDBL = 0;
  26.     $totalTPL = 0;
  27.     $totalCDL = 0;
  28.     //Total de INF por cada tipo de habitacion
  29.     $totalSGLINF = 0;
  30.     $totalDBLINF = 0;
  31.     $totalTPLINF = 0;
  32.     $totalCDLINF = 0;
  33.     //Total de CHD por cada tipo de habitacion
  34.     $totalSGLCHD = 0;
  35.     $totalDBLCHD = 0;
  36.     $totalTPLCHD = 0;
  37.     $totalCDLCHD = 0;
  38.     //Total de ADT por cada tipo de habitacion
  39.     $totalSGLADT = 0;
  40.     $totalDBLADT = 0;
  41.     $totalTPLADT = 0;
  42.     $totalCDLADT = 0;
  43.     //Total de SEN por cada tipo de habitacion
  44.     $totalSGLSEN = 0;
  45.     $totalDBLSEN = 0;
  46.     $totalTPLSEN = 0;
  47.     $totalCDLSEN = 0;
  48.    
  49.     echo "Grupo $idgrupo; ";
  50.     foreach($posiciones as $numeroposicion=>$tiposhabitaciones){
  51.         foreach($tiposhabitaciones as $nombrehabitacion=>$tipopersona){
  52.             if( $nombrehabitacion == "SGL" ){
  53.                 $totalSGL = $totalSGL + 1;
  54.                 if( $tipopersona == "INF" ){
  55.                     $totalSGLINF = $totalSGLINF + 1;
  56.                 }
  57.                 else if( $tipopersona == "CHD" ){
  58.                     $totalSGLCHD = $totalSGLCHD + 1;
  59.                 }
  60.                 else if( $tipopersona == "ADT" ){
  61.                     $totalSGLADT = $totalSGLADT + 1;
  62.                 }                
  63.                 else if( $tipopersona == "SEN" ){
  64.                     $totalSGLSEN = $totalSGLSEN + 1;
  65.                 }                
  66.             }
  67.             else if ( $nombrehabitacion == "DBL"  ){
  68.                 $totalDBL = $totalDBL + 1;
  69.                 if( $tipopersona == "INF" ){
  70.                     $totalDBLINF = $totalDBLINF + 1;
  71.                 }
  72.                 else if( $tipopersona == "CHD" ){
  73.                     $totalDBLCHD = $totalDBLCHD + 1;
  74.                 }
  75.                 else if( $tipopersona == "ADT" ){
  76.                     $totalDBLADT = $totalDBLADT + 1;
  77.                 }                
  78.                 else if( $tipopersona == "SEN" ){
  79.                     $totalDBLSEN = $totalDBLSEN + 1;
  80.                 }                
  81.             }
  82.             else if ( $nombrehabitacion == "TPL"  ){
  83.                 $totalTPL = $totalTPL + 1;
  84.                 if( $tipopersona == "INF" ){
  85.                     $totalTPLINF = $totalTPLINF + 1;
  86.                 }
  87.                 else if( $tipopersona == "CHD" ){
  88.                     $totalTPLCHD = $totalTPLCHD + 1;
  89.                 }
  90.                 else if( $tipopersona == "ADT" ){
  91.                     $totalTPLADT = $totalTPLADT + 1;
  92.                 }                
  93.                 else if( $tipopersona == "SEN" ){
  94.                     $totalTPLSEN = $totalTPLSEN + 1;
  95.                 }                    
  96.             }
  97.             else if ( $nombrehabitacion == "CDL"  ){
  98.                 $totalCDL = $totalCDL + 1;
  99.                 if( $tipopersona == "INF" ){
  100.                     $totalCDLINF = $totalCDLINF + 1;
  101.                 }
  102.                 else if( $tipopersona == "CHD" ){
  103.                     $totalCDLCHD = $totalCDLCHD + 1;
  104.                 }
  105.                 else if( $tipopersona == "ADT" ){
  106.                     $totalCDLADT = $totalCDLADT + 1;
  107.                 }                
  108.                 else if( $tipopersona == "SEN" ){
  109.                     $totalCDLSEN = $totalCDLSEN + 1;
  110.                 }                
  111.             }        
  112.         }
  113.     }
  114.     if( $totalSGL > 0 ){
  115.         if( $totalSGLINF > 0 ){
  116.             echo "Habitación SGL = ".$totalSGLINF." INF ";
  117.         }
  118.         if( $totalSGLCHD > 0 ){
  119.             echo "Habitación SGL = ".$totalSGLCHD." CHD ";
  120.         }
  121.         if( $totalSGLADT > 0 ){
  122.             echo "Habitación SGL = ".$totalSGLADT." ADT ";
  123.         }
  124.         if( $totalSGLSEN > 0 ){
  125.             echo "Habitación SGL = ".$totalSGLSEN." SEN ";
  126.         }        
  127.     }
  128.    
  129.     if( $totalDBL > 0 ){
  130.         if( $totalDBLINF > 0 ){
  131.             echo "Habitación DBL = ".$totalDBLINF." INF, ";
  132.         }
  133.         if( $totalDBLCHD > 0 ){
  134.             echo "Habitación DBL = ".$totalDBLCHD." CHD, ";
  135.         }
  136.         if( $totalDBLADT > 0 ){
  137.             echo "Habitación DBL = ".$totalDBLADT." ADT, ";
  138.         }
  139.         if( $totalDBLSEN > 0 ){
  140.             echo "Habitación DBL = ".$totalDBLSEN." SEN, ";
  141.         }        
  142.     }    
  143.    
  144.     if( $totalTPL > 0 ){
  145.         if( $totalTPLINF > 0 ){
  146.             echo "Habitación TPL = ".$totalTPLINF." INF, ";
  147.         }
  148.         if( $totalTPLCHD > 0 ){
  149.             echo "Habitación TPL = ".$totalTPLCHD." CHD, ";
  150.         }
  151.         if( $totalTPLADT > 0 ){
  152.             echo "Habitación TPL = ".$totalTPLADT." ADT, ";
  153.         }
  154.         if( $totalTPLSEN > 0 ){
  155.             echo "Habitación TPL = ".$totalTPLSEN." SEN, ";
  156.         }        
  157.     }    
  158.    
  159.     if( $totalCDL > 0 ){
  160.         if( $totalCDLINF > 0 ){
  161.             echo "Habitación CDL = ".$totalCDLINF." INF, ";
  162.         }
  163.         if( $totalCDLCHD > 0 ){
  164.             echo "Habitación CDL = ".$totalCDLCHD." CHD, ";
  165.         }
  166.         if( $totalCDLADT > 0 ){
  167.             echo "Habitación CDL = ".$totalCDLADT." ADT, ";
  168.         }
  169.         if( $totalCDLSEN > 0 ){
  170.             echo "Habitación CDL = ".$totalCDLSEN." SEN, ";
  171.         }        
  172.     }    
  173.    
  174.     echo "<br>";
  175. }
  176.  
  177. ?>