PHP - Ordenar Imagenes por Nombre

 
Vista:

Ordenar Imagenes por Nombre

Publicado por Emmanuel Vidal (3 intervenciones) el 29/12/2016 22:11:44
Tengo un código que al traer imágenes de una carpeta las muestra en desorden 1, 10, 100, 101 ....... etc y necesito que se ordenen 1, 2, 3, 4,............ les dejo el código y agradezco su ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
header('Content-Type: text/html; charset=utf-8');
$arr_ext=array("jpg","png","gif");   //http://www.andresmorenostudio.com/blog/programacion/php/16-galeria-dinamica-lightbox-php
$mydir=opendir("images/Hombres/");
$contadorH=1;
 
while($archivo=readdir($mydir))
{
	$ext=substr($archivo,-3);
	if(in_array($ext,$arr_ext))
	{
	$nvoContadorH = $nvoContadorH + $contadorH;
	echo 	'<div class="col-md-2 col-sm-6 col-xs-12 work-space">
			<a href="images/Hombres/'.$archivo.'" data-lightbox="image-1" rel="lightbox[roadtrip]" title="Usurpador.'.$n.'">
				<div class="featured-img">
					<img src="images/Hombres/'.$archivo.'">
				</div>   
								
				<div class="image-hover">
					<i class="glyphicon glyphicon-eye-open"></i>
				</div>

				<h3>Usurpador H'.$nvoContadorH.'</h3>
			</a> 
		</div>';
	}
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.944
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ordenar Imagenes por Nombre

Publicado por kip (877 intervenciones) el 30/12/2016 05:57:48
Hola, lo que se me ocurre en tu caso es almacenar en un array el valor de cada $archivo y luego con sort() ordenar el array aplicando algun flag que corresponda, estos son los disponibles:

SORT_REGULAR - compara elementos normalmente (no cambia los tipos)
SORT_NUMERIC - compara elementos de forma numérica
SORT_STRING - compara elementos como cadenas
SORT_LOCALE_STRING - compara elementos como cadenas, basándose en la configuración regional en uso. Utiliza la configuración regional, la cual puede cambiarse usando setlocale().
SORT_NATURAL - compara elementos como cadenas usando el "orden natural" de la misma forma que natsort().
SORT_FLAG_CASE - se puede combinar (OR a nivel de bits) con SORT_STRING o SORT_NATURAL para ordenar cadenas de forma insensible a mayúsculas/minúsculas.


http://php.net/manual/es/function.sort.php

Luego de ordenarlo mostraria cada imagen recorriendo dicho array con un foreach o for, debes recordar que lo importante es primero almacenar el valor de $archivo como un nuevo elemento del array que ordenaras y recorreras despues, este array sera llenado en cada cliclo while que ahora tienes y cuando recorras el array ordenado podras aplicar el codigo HTML que tienes ahora en el while.

Intenta con lo mencionado y si tienes alguna duda nos avisas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ordenar Imagenes por Nombre

Publicado por Emmanuel Vidal (3 intervenciones) el 30/12/2016 20:08:42
Gracias por el comentario he intentado como me lo indicaste pero aun no me queda, creo un nuevo array y ahi pongo los valores de $archivo y luego recorro el array nuevo pero me sigue saliendo en el mismo orden.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar