Tri naturel inverse sur script images avec pagination [Résolu]

cs_AuGuy 21 Messages postés mardi 2 novembre 2004Date d'inscription 18 décembre 2013 Dernière intervention - 25 juil. 2007 à 15:14 - Dernière réponse : cs_AuGuy 21 Messages postés mardi 2 novembre 2004Date d'inscription 18 décembre 2013 Dernière intervention
- 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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 25 juil. 2007 à 16:07
3
Merci
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! <---

Merci pysco68 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de pysco68
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 25 juil. 2007 à 15:39
0
Merci
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! <---
Commenter la réponse de pysco68
cs_AuGuy 21 Messages postés mardi 2 novembre 2004Date d'inscription 18 décembre 2013 Dernière intervention - 25 juil. 2007 à 16:03
0
Merci
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"));
Commenter la réponse de cs_AuGuy
cs_AuGuy 21 Messages postés mardi 2 novembre 2004Date d'inscription 18 décembre 2013 Dernière intervention - 25 juil. 2007 à 16:16
0
Merci
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
Commenter la réponse de cs_AuGuy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.