Foros del Web » Programando para Internet » PHP »

ordenar con natsort

Estas en el tema de ordenar con natsort en el foro de PHP en Foros del Web. Buen dia tengo el siguiente codigo para mostrar las imagenes de una carpeta en un select pero uisiera ordenarlas de forma natural con natsort. por ...
  #1 (permalink)  
Antiguo 06/11/2012, 13:22
Avatar de mazaku  
Fecha de Ingreso: septiembre-2009
Ubicación: Veracruz
Mensajes: 104
Antigüedad: 14 años, 7 meses
Puntos: 0
ordenar con natsort

Buen dia tengo el siguiente codigo para mostrar las imagenes de una carpeta en un select pero uisiera ordenarlas de forma natural con natsort.

por que me las muestra asi

image/1.jpg
image/10.jpg
image/11.jpg
....
image/2.jpg
image/20.jpg

y yo quiero que sea de forma natural
1
2
3
....
10
11
12
etc

y quisiera saber de este codigo de que forma se podria ordenar con natsort?

<?php

$files = scandir($dir);
natsort($files);

$dir ="$dir";

$c1 = count($files);
$c2 = 1;

for($i=0; $i<$c1; $i++)
{
if(strlen($files[$i]) > 3)
{
$extension = strtolower(substr($files[$i], -4));

if(($extension == ".gif") OR ($extension == ".jpg") OR ($extension == ".png"))
{
echo "<option value='$dir".$files[$i]."'>$c2";
$c2++;
}
}
}
?>
</select>[/PHP]

gracias por su ayuda
  #2 (permalink)  
Antiguo 06/11/2012, 13:34
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: ordenar con natsort

porke declaras esto ??

$dir ="$dir";

en la 4ta lina

cuando imprimas en

echo "<option value='$dir".$files[$i]."'>$c2";

el valor sera '$dir' una cadena o string
  #3 (permalink)  
Antiguo 06/11/2012, 13:45
Avatar de mazaku  
Fecha de Ingreso: septiembre-2009
Ubicación: Veracruz
Mensajes: 104
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: ordenar con natsort

perdon, si ese estaba de mas, ya se lo he quitado

el $dir lo saco anteriormente de un registro en la base de datos que es el path donde se guardaron las imagenes

Código PHP:
Ver original
  1. while ($reg=mysql_fetch_array($registros))
  2. {
  3. $dir = "".$reg['c_path']."";


Código PHP:
Ver original
  1. <?php
  2.                    
  3. $files = scandir("$dir");
  4.  
  5.  $c1 = count($files);
  6.  
  7. $c2 = 1;
  8.  
  9. for($i=0; $i<$c1; $i++)
  10. {
  11.   if(strlen($files[$i]) > 3)
  12.   {
  13.   natsort($files);
  14.   $extension = strtolower(substr($files[$i], -4));
  15.  
  16.      if(($extension == ".gif") OR ($extension == ".jpg") OR ($extension == ".png"))
  17.        {
  18.     echo "<option value='$dir".$files[$i]."'>$c2";
  19.         $c2++;    
  20.     }
  21.   }
  22.   }
  23.  ?>
  24.           </select>
  #4 (permalink)  
Antiguo 06/11/2012, 14:01
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: ordenar con natsort

Código PHP:

// cambia
$dir "".$reg['c_path']."";
$files scandir("$dir"); 
echo 
"<option value='$dir".$files[$i]."'>$c2";

//por
$dir $reg['c_path'];
$files scandir($dir);
echo 
'<option value="' $dir '/' $files[$i] . '">' $c2 '</option>'// depende de tu OS seria / o \ 
  #5 (permalink)  
Antiguo 06/11/2012, 14:59
Avatar de mazaku  
Fecha de Ingreso: septiembre-2009
Ubicación: Veracruz
Mensajes: 104
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: ordenar con natsort

ya he realizado los cambios que me comentas pero aun asi no logro hacer que muestre las imagenes de forma organizada me sigue mostrando

1.jpg
10.jpg
11.jpg
2.jpg
20.jpg
etc

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 10:45.