Foros del Web » Programando para Internet » PHP »

problema al ordenar array

Estas en el tema de problema al ordenar array en el foro de PHP en Foros del Web. Buen dia, tengo el siguiente codigo que muestra en un array las imagenes de un directorio pero el problema es que no las muestra de ...
  #1 (permalink)  
Antiguo 28/03/2012, 21:44
Avatar de mazaku  
Fecha de Ingreso: septiembre-2009
Ubicación: Veracruz
Mensajes: 104
Antigüedad: 15 años, 2 meses
Puntos: 0
problema al ordenar array

Buen dia, tengo el siguiente codigo que muestra en un array las imagenes de un directorio pero el problema es que no las muestra de forma ordenada
es decir saca las imagenes de esta forma

004.jpg, 001.jpg,005.jpg, 003.jpg,002.jpg

y yo quiero que la ordene asi

001.jpg,002.jpg,003.jpg,004.jpg,005.jpg

ya que despues muestro la primera imagen de esta forma

Código PHP:
Ver original
  1. <img style="CURSOR: hand" src="<?php echo $dir; ?><? echo $firstpic; ?>"name="show" class="img">

pero el problema que como no ordena las imagenes no es la primera la que muestra sino otra, espero me haya explicado bien

este es el codigo que uso

Código PHP:
Ver original
  1. <? if (is_dir($dir)){if ($dh = opendir($dir)){while (($file = readdir($dh)) !== false){if($file != '.' && $file != '..' && $file != 'Thumbs.db'){if($i==0){$firstpic=$file;}$i++;$filenames.="'".$file."', ";}}echo substr($filenames, 0, -2);closedir($dh);}}?>
  #2 (permalink)  
Antiguo 28/03/2012, 21:48
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: problema al ordenar array

hay varias funciones para ordenar arrays
esta te puede servir sort
sino acá hay mas funciones para array buscá alguna que te sirva
__________________
la la la
  #3 (permalink)  
Antiguo 28/03/2012, 22:06
Avatar de mazaku  
Fecha de Ingreso: septiembre-2009
Ubicación: Veracruz
Mensajes: 104
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problema al ordenar array

Muchas gracias por tu pronta ayuda, vi el manual que me indicaste y disculpa mi ignorancia pero podrias porfavor indicarme en que parte debo incluir el sort

lo maneje asi pero me marca error

Código PHP:
Ver original
  1. <? if (is_dir($dir)){if ($dh = opendir($dir)){while (($file = readdir($dh)) !== false){if($file != '.' && $file != '..' && $file != 'Thumbs.db'){if($i==0){$firstpic=$file;}$i++;$filenames.="'".$file."', ";}}echo substr($filenames, 0, -2);sort($filenames);closedir($dh);}}?>

Cita:
b>Warning</b>: sort() expects parameter 1 to be array, string given in <b>/home/manganix/public_html/manganix.uni.me/galeria.php</b> on line <b>20</b><br />
  #4 (permalink)  
Antiguo 28/03/2012, 22:41
 
Fecha de Ingreso: noviembre-2007
Ubicación: Etzatlan, Jalisco
Mensajes: 50
Antigüedad: 17 años
Puntos: 18
Respuesta: problema al ordenar array

Necesitas pasarle como parametro un arreglo, y segun veo no tienes ningun arreglo.

En lugar de usar open_dir utiliza scandir, te regresa un arreglo con todos los archivos dentro de la carpeta que desees en orden ascendente.

Ejemplo: Muestra todos los archivos de una carpeta ordenados
Código PHP:
Ver original
  1. <?php
  2.         $carpeta =__DIR__
  3.         $arreglo = scandir($carpeta);
  4.        
  5.        
  6.         foreach($arreglo as $elemento){
  7.             echo $elemento."<br >";
  8.         }
  9.  
  10. ?>
  #5 (permalink)  
Antiguo 28/03/2012, 23:00
Avatar de mazaku  
Fecha de Ingreso: septiembre-2009
Ubicación: Veracruz
Mensajes: 104
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problema al ordenar array

disculpa anarkes con el ejemplo que muestras de que forma podria mostrar solo la primer imagen del directorio. que carge el array de imagenes de un directorio

001.jpg,002.jpg,003.jpg,004.jpg,005.jpg

pero mostrar aparte solo la primer imagen, aparte

Cita:
<?php
$carpeta =__DIR__
$arreglo = scandir($carpeta);


foreach($arreglo as $elemento){

?>
y en la misma pagina pero separado, mostrar la imagen

Cita:
<img style="CURSOR: hand" src="<?php echo $dir; ?><? echo $elemento.; ?>"name="show" class="img">
}
que elemento sea la primera imagen del directorio en el caso del ejemplo $elemento sea igual a 001.jpg
  #6 (permalink)  
Antiguo 28/03/2012, 23:10
 
Fecha de Ingreso: noviembre-2007
Ubicación: Etzatlan, Jalisco
Mensajes: 50
Antigüedad: 17 años
Puntos: 18
Respuesta: problema al ordenar array

Si deseas mostrar el primer elemento del arreglo, solo es necesario usar

Código PHP:
Ver original
  1. <img style="CURSOR: hand" src="<?php echo $dir.$arreglo[0]; ?>"name="show" class="img">

Asi deberia de quedar el codigo original pero con scandir
Código PHP:
Ver original
  1. <?php
  2.  
  3.         if(is_dir($dir)){
  4.             $arreglo = scandir($dir);
  5.             foreach($arreglo as $file){
  6.                 if($file != '.' && $file != '..' && $file != "Thumbs.db"){
  7.                     if($i==0)
  8.                         $firstpic=$file;
  9.                     $i++;
  10.                     $filenames .= "'".$file."', ";
  11.                 }
  12.             }
  13.             echo substr($filenames, 0, -2);
  14.         }
  15.  
  16. ?>

Última edición por anarkes; 28/03/2012 a las 23:19
  #7 (permalink)  
Antiguo 28/03/2012, 23:21
Avatar de mazaku  
Fecha de Ingreso: septiembre-2009
Ubicación: Veracruz
Mensajes: 104
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problema al ordenar array

XD disculpa por lo enredado del comentario anterior, y muchas gracias por tu ayuda ya funciona muy bien muchas gracias

Etiquetas: imagenes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:16.