Salut à tous,

J'ai un petit problème avec ma boucle php, elle lis les sous-dossiers d'un dossier sur mon serveur, mais je voudrais qu'elle puisse les trier par ordre décroissant. Je sais qu'il existe des fonctions native de php comme rsort(), krsort() ou arsort() mais je galère à l'intégrer à ma boucle.


Voici ma boucle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38
39
 
 
 
      $dir = "Mondossier/archives/";
$folder  = opendir($dir);
 
 
while (false !== ($file = readdir($folder))) {
 
$files = array();  
 
$files[]= $file;
 
 
      $this->files=$files;
      $this->folder=$folder;
 
// Affichage + traitement (afin d'avoir les dossiers dans l'ordre alphabetique
 
 
 
      foreach($this->files as $key => $file){
 
			if($file ==".." || $file =="." ) continue; 
				$recup_nom=explode(".",$file);
				$fichier=$recup_nom[0];
				$extension=$recup_nom[1];
 
				krsort($fichier); /* ici la fonction de tri décroissant */
			}	
 
 
		if($fichier!=$archive &&$file !=".." &&$file !=".") //  $file : modif pour éviter l'apparition d'icone en trop
			{  		
 
    echo "<div id='icone'><a href='?dossier=$fichier'><b> $file</b></a></div><br />";
			}
 
	}
J'ai comme l'impression qu'il ne calcule pas rsort() et l'appel du tableau $files pour pouvoir trier la variable $file


Quand je fait un test avec des valeurs en dur ça fonctionne parfaitement :

Ce code fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$annee = array();
 
	$annee [0]= "1992";
	$annee [1]= "1996";
	$annee [2]= "1999";
	$annee [3]= "2006";
	$annee [4]= "2007";
 
krsort($annee);
foreach ($annee as $key => $val) {
    echo "$key = $val <br />";
}
Voilà, si quelqu'un à une idée la dessus ça serais sympa