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.
<!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>
Finalmente opté por hacerlo de una vez con una función recursiva.
<?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/>"; } } ?>