viernes, 31 de enero de 2020

Php foreach array tridimensional asociativo

En este ejemplo podemos ver como anidando varios foreach podremos recorrer un array asociativo tridimensional, de forma sencilla.

<?php
 
$niveles array(
    'Primaria' => array('1º','2º','3º','4º','5º','6º'),
    'Secundaria'=> array('Primer Ciclo' => array('1º Eso','2º Eso'),
                         'Segundo Ciclo' => array('3º Eso','4º Eso')),
    'Fp' => array (
            'Grado Medio' => array (
                    'Artes gr&aacute;ficas' => array ('Impresi&oacute;n','Post impresi&oacute;n y acabados gr&aacute;ficos'),
                    'Comercio y Marqueting' => array ('Actividades comerciales'),
                    'Imagen y sonido' => array ('V&iacute;deo Disc-Jockey y Sonido'),
                    'Inform&aacute;tica y Comunicaciones' => array ('Sistemas Microinform&aacute;ticos y Redes')),
            'Grado Superior' => array (
                    'Edificaci&oacute;n Obra Civil' => array ('Dise&ntilde;o y Amueblamiento'),
                    'Electricidad Electr&oacute;nica' => array ('Eficiencia Energ&eacute;tica y Energ. Solar T&eacute;rmica'),
                    'Hosteler&iacute;a Turismo' => array ('Direcci&oacute;n de Servicios de Restauraci&oacute;n'),
                    'Informatica y Comunicaciones' => array ('Desarrollo de Aplicaciones Multiplataforma','Desarrollo de Aplicaciones Web')))
                    );
 
foreach($niveles as $nivel => $nombre){
        echo "<h1><i>$nivel</i></h1>";
                // INICIO SEGUNDO FOREACH
                foreach($nombre as $indice => $valor){
                    // PRIMER IF_ISARRAY
                    if (is_array($valor)){
                        echo "<h3>".$indice.":</h3>";
 
                            foreach ($valor as $i => $v){
                                    // INICIO 2º IF IS_ARRAY & 4º FOREACH
                                    if (is_array($v)){
                                        echo "<b>- ".$i.$v."</b><br/>";
 
                                            foreach ($v as $ig => $vg){
                                                echo "*** ".$vg."<br/>";
                                            }
                                        }else{echo "<p>".$v."</p>";}
                                        // FIN 2º IF IS_ARRAY & 4º FOREACH
 
                                    // FIN 3º FOREACH
 
                        }else{echo "<h3>* ".($indice+1).' / '.$valor."</h3>";}// FIN 1º IF IS_ARRAY
 
                }// FIN 2º FOREACH
 
    }// FIN 1º FOREACH

No hay comentarios:

Publicar un comentario

Gracias por vuestros aportes.