Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 17h28   #1
Futur Membre du Club
 
Inscription : mai 2007
Messages : 115
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 115
Points : 19
Points : 19
Par défaut classer les fichiers d'un tableau par date

Bonjour
est-il possible de classer les fichiers d'un tableau par date de création décroissante par exemple.

Code :
1
2
 
Array ( [0] => actedengagement.pdf [1] => agence-calmel.jpg [2] => bordereaudeprixserv.transports.pdf [3] => extranet-bauge.jpg )
merci
totofe49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/05/2011, 20h25   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il faudrait que tu aies la date dans ton tableau pour classer par date.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/05/2011, 00h26   #3
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonsoir,

c'est possible mais il faut créer une fonction intermédiaire pour comparer la date de modification des fichiers en question. ( je dis bien date de modification car il n'est pas possible de déterminer de manière sûre et portable la date de création d'un fichier )

regarde/essaie cet exemple :
Code :
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
40
41
42
43
44
45
46
47
48
49
50
51
 
<?php
 
// repertoire a scanner :
$dir= ".";
 
// comparateur de date
function dateComparator($a, $b) {
    if ($a['date_modification'] == $b['date_modification']) return 0;
    return ($b['date_modification'] < $a['date_modification']) ? -1 : 1;
}
 
// scan du repertoire
$iterator = new RecursiveIteratorIterator(
		new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::CHILD_FIRST);
 
$fichiers=array();
foreach ($iterator as $path) {
 
	// si il s'agit d'un fichier
  if ($path->isFile())
 
    // on cree une matrice d'informations sur le fichier
  	$fichiers[]= array(
  		"nom" => pathinfo($path->__toString(), PATHINFO_BASENAME), 
  		"date_modification" => filemtime($path)
  	);
 
}
 
 
// affichage du tableau de fichiers avant tri par date
echo "<h3>avant tri par date : </h3>";
echo "<hr/>";
foreach($fichiers as $key => $item) {
	echo "[".$key."] ".date("d/m/Y H:i:s", $item['date_modification'])." | ".$item['nom']."<br/>";
}
echo "<hr/>";
 
// tri par date
usort($fichiers, 'dateComparator');
 
// affichage du tableau de fichiers apres tri par date
echo "<h3>après tri par date : </h3>";
echo "<hr/>";
foreach($fichiers as $key => $item) {
	echo "[".$key."] ".date("d/m/Y H:i:s", $item['date_modification'])." | ".$item['nom']."<br/>";
}
echo "<hr/>";
 
?>
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/05/2011, 10h45   #4
Futur Membre du Club
 
Inscription : mai 2007
Messages : 115
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 115
Points : 19
Points : 19
pourquoi est-ce que la date pour tous les fichiers est 01/01/1970 ?
totofe49 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 16/05/2011, 14h39   #5
Membre régulier
 
Avatar de Pierrot2Mars
 
Homme Pierrot
Développeur Web
Inscription : novembre 2010
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Pierrot
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2010
Messages : 79
Points : 96
Points : 96
Tu peux utiliser array_multisort()

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$fichiers = array();
$dates = array();
$dir = '';
 
$fichiers[]= 'actedengagement.pdf';
$fichiers[]= 'agence-calmel.jpg';
$fichiers[]= 'bordereaudeprixserv.transports.pdf';
$fichiers[]= 'extranet-bauge.jpg';
 
foreach($fichiers as $key => $val) {
 
	$dates[] = date("Y-m-d-H-i", filemtime($dir.$val));
 
}
 
array_multisort($dates,$fichiers);
 
foreach($fichiers as $key => $val) {
 
	echo $val .' : '.date("d-m-Y à H:i", filemtime($dir.$val)).'<br />';
 
}
http://php.net/manual/fr/function.array-multisort.php
Pierrot2Mars est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h42.


 
 
 
 
Partenaires

Hébergement Web