IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

classer les fichiers d'un tableau par date


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 118
    Points : 49
    Points
    49
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Array ( [0] => actedengagement.pdf [1] => agence-calmel.jpg [2] => bordereaudeprixserv.transports.pdf [3] => extranet-bauge.jpg )
    merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faudrait que tu aies la date dans ton tableau pour classer par date.

  3. #3
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    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 : 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
    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/>";
     
    ?>

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 118
    Points : 49
    Points
    49
    Par défaut
    pourquoi est-ce que la date pour tous les fichiers est 01/01/1970 ?

  5. #5
    Membre régulier Avatar de Pierrot2Mars
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2010
    Messages : 79
    Points : 108
    Points
    108
    Par défaut
    Tu peux utiliser array_multisort()

    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
    $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

Discussions similaires

  1. Problème pour trier les fichiers d'un dossier par date
    Par Stephane_br dans le forum VB.NET
    Réponses: 7
    Dernier message: 24/07/2012, 16h34
  2. Classer les fichiers sur ftp par date
    Par david2511 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 16/02/2012, 12h22
  3. Réponses: 5
    Dernier message: 10/05/2010, 11h46
  4. Trier les fichiers d'un répertoire par date
    Par rouliane dans le forum Général Python
    Réponses: 7
    Dernier message: 02/08/2009, 17h26
  5. lister les fichiers d'un repertoire par date
    Par ra77 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2006, 03h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo