Tri naturel inverse sur script images avec pagination

Résolu
cs_AuGuy Messages postés 21 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 18 décembre 2013 - 25 juil. 2007 à 15:14
cs_AuGuy Messages postés 21 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 18 décembre 2013 - 25 juil. 2007 à 16:16
bonjour  ça fait 2 jour que je me casse la tete sur ça un coup de main serait le bienvenue donc merci d'avance pour l'aide
 donc voila le script en question
<?php


$nbr_colonne = 1;
$nbr_ligne = 10;


$RepPetiteImages = "images/";
$RepGrosseImages = "images/";




function GetFileList( $dirname="." ) {   
   $files = array(); 
   $dir = opendir( $dirname );
   while( $file = readdir( $dir ) ) {
      if (ereg("jpg$",$file) || ereg("JPG$",$file) || 
          ereg("jpeg$",$file) || ereg("JPEG$",$file) ||
          ereg("png$",$file) || ereg("PNG$",$file) ||
   ereg("gif$",$file) || ereg("GIF$",$file)
   ) {
          $files[] = $file; 
      }
   }
   usort($files, "strnatcmp");
   //sort($files);
   return $files;
}


echo "\n\";

$imagelist = GetFileList($RepGrosseImages);

$nbr_par_page = $nbr_colonne * $nbr_ligne;
$nbr_tot  = count($imagelist);
$debut   = 1;
$j       = 1;
$fin   = $nbr_par_page;

if (!isset($ppage))
{
 $ppage=1;
}

for($i=$debut; $i < $nbr_tot +1; $i++)
{
 $image  = $imagelist[$i-1];
 
  $size   = getimagesize(\"$RepPetiteImages$image\");
 $width  = $size[0];
 $height  = $size[1];
 
 $page  = ceil($i/$nbr_par_page);
 $tpage[$i] = $page;

 if ($page == $ppage)
 {
    if ($j == 1) echo \"----
\n\";
    echo \" \n";
  echo "  $RepGrosseImages$image \n";
  echo "   \n";
  echo "   \n";
  echo "   \n";
  echo ",  \n\";
  if ($j == $nbr_colonne)
  {
    echo \" \n\";
   $j = 1;
  }
  else
  {
   $j = $j + 1;
  }
 }
}

echo "
 \n";
echo "
 \n";
echo "
 \n";
$sval = -1;
while (list ($key, $val) = each ($tpage)) {


 if ($sval != $val)
 {
 if ($val == $ppage)
    echo "[$val] ";
  else
    echo "[$val] ";
 $sval = $val;
 }
}
echo "\n
";


?>

je le poste exactement comme je les trouvé
il fonctionne trés mais je n'arrive pas a faire un tri " naturel inverse"
j'ai cherché un peu partout deja et essayé un peu tout aussi..
comme sur la doc // Voir aussi arsort(), asort(), ksort(), krsort(), natsort(), natcasesort(), rsort(), usort(), uksort().
mais j'obtiens un peu tout et n'importe quoi (imprevisible qu'il disait je confirme!)
la seule façon qui se raproche le plus de ce que je veux est : usort($files, "strnatcmp");
la le tri est bien naturel (et dans le vrai ordre) mais pas inverse
je veux obtenir exemple  25,24,23.... 3,2,1
si quelqu'un pouvait m'aider merci beaucoup

4 réponses

pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 juil. 2007 à 16:07
le fonction array_reverse() inverse les entr ée d'un array,

je viens de sortir de d'adapter la ligne concernée de ton code:
usort($files, "strnatcmp");
//sort($files);
return array_reverse ($files);
<hr size ="2" width="100%" />
Ma faute d'ésolé, avais zappé comment on utilise usort() ^^

j'espère que ça marche :)

Developpement Web Yannic GraphiX | Mon CMS yArt et ça démo
---> Google est ton meilleur ami! <---
3
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 juil. 2007 à 15:39
array_reverse devrait être ton ami ^^

donc $naturel_invers = array_reverse(usort($files, "strnatcmp")); devrait le faire :)

@pluche

Developpement Web Yannic GraphiX | Mon CMS yArt et ça démo
---> Google est ton meilleur ami! <---
0
cs_AuGuy Messages postés 21 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 18 décembre 2013
25 juil. 2007 à 16:03
c'est a dire ? j'ai pas tout compris
j'ai deja un array si j'en ajoute un j'ai un warning
je sais pas trop quoi en faire a vrai dire du
$naturel_invers = array_reverse(usort($files, "strnatcmp"));
0
cs_AuGuy Messages postés 21 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 18 décembre 2013
25 juil. 2007 à 16:16
roh le nul que je suis pourquoi j'y est pas pensé
ça fonctionne parfaitement merci beaucoup  j'avais lu un truc sur array_reverse deja mais je savais pas quoi en faire vu qu'il y en avait deja un ben maintenant je sais merci merci
0
Rejoignez-nous