Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/08/2009, 17:42
Avatar de rfadgrmm
rfadgrmm
 
Fecha de Ingreso: junio-2009
Mensajes: 74
Antigüedad: 15 años, 7 meses
Puntos: 1
Pregunta Contar valores de un arreglo multidimensional por llaves (keys)

Saludos para todos los usuario de Foros del Web, tengo esta rutina de código en PHP, y quisiera que me orienten en esto. La leyenda para esta consulta es la siguiente:

Pasajeros:
ADT = Adulto, CHD = Niño, INF = Infante, SEN = Mayor

Habitaciones:
SGL = Simple, DBL = Doble, TPL = Triple, CDL = Cuadruple

Tengo este primer ejemplo de arreglo generado por PHP : (Tengo 3 Adultos y 1 Niño en 2 Habitaciones Dobles)
Código PHP:
$distribucion[4][1]["DBL"] = "ADT";
$distribucion[4][2]["DBL"] = "ADT";
$distribucion[4][3]["DBL"] = "ADT";
$distribucion[4][4]["DBL"] = "CHD";

$distribucion[5][1]["DBL"] = "ADT";
$distribucion[5][2]["DBL"] = "ADT";
$distribucion[5][3]["DBL"] = "ADT";
$distribucion[5][4]["DBL"] = "CHD";

echo 
"<pre>";
print_r($distribucion);
echo 
"</pre>"
Al imprimir, me muestra esto;
Código HTML:
Array
(
    [4] => Array
        (
            [1] => Array
                (
                    [DBL] => ADT
                )

            [2] => Array
                (
                    [DBL] => ADT
                )

            [3] => Array
                (
                    [DBL] => ADT
                )

            [4] => Array
                (
                    [DBL] => CHD
                )

        )

    [5] => Array
        (
            [1] => Array
                (
                    [DBL] => ADT
                )

            [2] => Array
                (
                    [DBL] => ADT
                )

            [3] => Array
                (
                    [DBL] => ADT
                )

            [4] => Array
                (
                    [DBL] => CHD
                )

        )

)
Aquí tengo un segundo ejemplo, algo similar: (Tengo 6 Adultos y 1 Niño en 2 Habitaciones Dobles y 1 Habitación Triple)
Código PHP:
$distribucion[10][1]["DBL"] = "ADT";
$distribucion[10][2]["DBL"] = "ADT";
$distribucion[10][3]["DBL"] = "ADT";
$distribucion[10][4]["DBL"] = "ADT";
$distribucion[10][5]["TPL"] = "ADT";
$distribucion[10][6]["TPL"] = "ADT";
$distribucion[10][7]["TPL"] = "CHD";

echo 
"<pre>";
print_r($distribucion);
echo 
"</pre>"
Así como su impresión:
Código HTML:
Array
(
    [10] => Array
        (
            [1] => Array
                (
                    [DBL] => ADT
                )

            [2] => Array
                (
                    [DBL] => ADT
                )

            [3] => Array
                (
                    [DBL] => ADT
                )

            [4] => Array
                (
                    [DBL] => ADT
                )

            [5] => Array
                (
                    [TPL] => ADT
                )

            [6] => Array
                (
                    [TPL] => ADT
                )

            [7] => Array
                (
                    [TPL] => CHD
                )

        )

)
Lo que deseo hacer es una distribución de pasajeros por habitaciones, generando finalmente esta serie de arreglos.

Como pueden ver es un arreglo multidimensional, el primer índice se refiere a un grupo ó grupos alojados en una base de datos, el segundo índice lo creé por existir duplicidad en las claves("DBL", "TPL", etc.) y el tercer índice es la leyenda de la habitación. Ahora el detalle es que deseo contar cuantos "Pasajeros" distribuidos hay por cada "Habitación" (según la leyenda escrita líneas arriba).

Deseo llegar a esto:

Primer arreglo:

Grupo 4: Habitación DBL = 3 ADT, Habitación DBL = 1 CHD
Grupo 5: Habitación DBL = 3 ADT, Habitación DBL = 1 CHD


Segundo arreglo:

Grupo 10: Habitación DBL = 4 ADT, Habitación TPL = 2 ADT, 1 CHD

Agradezco la atención y todas las respuestas y formas posibles para resolver esta consulta, muchas gracias.