Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: RAM47 en 01 de Noviembre 2016, 20:31

Título: PHP Obtener array arreglo multidimensional a partir dos arrays unidimensionales
Publicado por: RAM47 en 01 de Noviembre 2016, 20:31
Hola. Tengo una lista de carpetas numeradas como 1, 2, 3, etc... En cada una hay varias imágenes. He hecho un código para guardar el path de las carpetas y la lista de archivos en dos arrays diferentes. No sé si es posible juntar los dos arrays en uno solo multidimensional. Tendría que ocupar alguna función particular? Agradezco cualquier sugerencia. Muchas gracias.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
    <title> Operaciones </title>
    <meta charset="utf-8">
</head>
    <body>
       
<?php        //GUARDAR DIRECTORIOS        //crear array para directorios numericos        $pathDIR = "img/";        $DIR = Array();        //guardar directorios numericos en array con foreach        foreach (glob($pathDIR . '/[0-30]*', GLOB_ONLYDIR) as $dirname) {            $DIR[] = $dirname;            }        //mostrar los directorios numericos        for($a = 0; $a < count($DIR); $a++) {            echo $DIR[$a] . "<br>";           }        //GUARDAR IMAGENES        //creo array para directorios        $pathFILE = Array();        //creo arrays para imagenes              $file = Array();                    //inicio ciclo for        for($b = 1; $b <= count($DIR); $b++) {            $pathFILE[$b] = "img/" . $b . "/";             //guardo las imagenes en array con foreach            foreach(glob($pathFILE[$b] . '*.jpg') as $filename) {                $file[] = $filename;            }        }        //muestro las imagenes        for($c = 1; $c <= count($file); $c++) {            echo $file[$c-1] . "<br>";        }        ?>

    </body>
</html>
Título: Re:PHP Obtener array arreglo multidimensional a partir dos arrays unidimensionales
Publicado por: Ogramar en 20 de Noviembre 2016, 19:51
Buenas, pon un ejemplo de lo que quieres conseguir para poder ayudar.

Supongamos que tienes:

directorio[0] = "h:/www/dir/";
fichero[0] = "casa.jpg";
fichero[1] = "perro.jpg";
fichero[2] = "jardin.gif";

¿Lo que quieres es crear algo como

direc_fich[0][0] = "casa.jpg";
direc_fich[0][1] = "perro.jpg";
direc_fich[0][2] = "jardin.gif";

?

Salu2
Título: Re:PHP Obtener array arreglo multidimensional a partir dos arrays unidimensionales
Publicado por: RAM47 en 21 de Noviembre 2016, 18:12
Finalmente opté por hacerlo de una vez con una función recursiva.
Código: [Seleccionar]
       
<?php                 //función para obtener el nombre de las carpetas y los archivos en array multidimensional        function dirToArray($dir) {                         //creo un array            $listDir = array();                        //abro los directorios contenidos en $dir            if($handler = opendir($dir)) {                                 //leo todos los elementos contenidos                 while (false !== ($file = readdir($handler))) {                                        //verifico que hayan elementos                    if ($file != "." && $file != ".." && $file != "thumb") {                                                /*si los elementos son archivos, guardo los elementos                         en algún indice (dimensión) del array*/                        if(is_file($dir."/".$file)) {                             $listDir[] = $file;                                                    /*si los elementos son directorios, guardo los elementos                         en otro índice o dimensión, repitiendo hasta que hayan elementos*/                        }elseif(is_dir($dir."/".$file)){                             $listDir[$file] = dirToArray ($dir."/".$file);                         }                     }                 }                closedir($handler);             }             return $listDir;         }                        //establezco directorio para función        $dir = "/";        //cambiar array local        $list = dirToArray($dir);                //visualizar imágenes con bucle         for ($a = 1; $a < count($list)+1; $a++) {            for ($b = 0; $b < count($list[$a]); $b++) {                                echo $dir . $a . "/" . $list[$a][$b] . "<br>";                echo '<img src="' . $dir . $a . "/" . $list[$a][$b] .'" width = 160 height = 120>'."<br/>";              }        }        ?>
Título: Re:PHP Obtener array arreglo multidimensional a partir dos arrays unidimensionales
Publicado por: Ogramar en 23 de Noviembre 2016, 16:50
Gracias por indicar cómo lo solucionaste, le puede servir de ayuda a otras personas.

Salu2