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 :

sort incroyablement compliqué


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Points : 289
    Points
    289
    Par défaut sort incroyablement compliqué
    Bonjour a tous,

    j'ai un fichier php qui lit une liste de repertoires dans une machine windows 7.

    Donc disons que dans le volume X:\ j'ai des repertoire de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    texto_(01.04.2011-15.10.2011)
    texto_(11.04.2008-15.10.2008)
    texto_(15.04.2010-15.05.2010)
    Le php me cree la liste correctement, mais l'on me demande d'ordonner avec la segonde date.
    Et le deuxieme probleme c'est que je dois garder la structure du nom de repertoire car le <a href> doit pointer dans le repertoire...Donc si je joue avec substr pour isoler la derniere date, je perds le fil.

    Quelqu'un sait comment faire un sort dans un array qui contient ces repertoires?
    D?avance merci

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Ma foi, tout ce que tu as à faire c'est mettre toutes tes entrées dans un tableau associatif dont les clés sont les timestamp générés à partir des dates (utilise strtotime ou mktime). Ensuite tu n'as plus qu'a faire ksort sur ce tableau et le tour est joué

  3. #3
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Points : 289
    Points
    289
    Par défaut
    Bonjour,
    je crois comprendre l'idée...

    mon code original est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $myDirectory = opendir("C:\TSM clientes");
     
    while($entryName = readdir($myDirectory)) {
                $dirArray[] = $entryName;
    }
    Donc si je suis ton idée, je dois ajouter le timestamp dans $dirArray[] c'est ça?
    Tu peux me dire comment je peux faire ça?
    D?avance merci

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    je pensais plutôt à:
    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
    while ($dirname = readdir($handle)) {
    	// choper la date
    	$date = substr(trim($dirname), -11, 10);
     
    	// on extrait les données
    	list($d,$m,$y) = explode('.', $date) + array('','','');
     
    	// on le mets dans la liste
    	$dirs[$y.$m.$d] = $dirname;
    }
     
    // on trie
    ksort($dirs);
     
    var_dump( $dirs );
    Edit: en fait on peut tout à fait s'éconnomiser le mktime.

  5. #5
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Points : 289
    Points
    289
    Par défaut
    ça donne cette erreur:

    Warning: mktime() expects parameter 4 to be long

    Un detail, ici on est a barcelone, je sais pas si c'est important?

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    En fait le mktime n'est pas obligatoire. Regarde au dessus.

  7. #7
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Points : 289
    Points
    289
    Par défaut
    Ok ça marche
    !!!
    Merci pour ton aide ! Bonne apres midi.
    Ciao

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. StringGrid sort
    Par clovis dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/10/2004, 21h46
  2. Voyageur de commerce, mais en plus compliqué
    Par Krispy dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 16/02/2004, 08h44
  3. sorte de valeur par defaut
    Par sampq dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/07/2003, 11h59
  4. xsl:sort
    Par Pierre63 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 03/07/2003, 12h37
  5. JBuilder 7 personnal sort à chaque save
    Par Hannouz dans le forum JBuilder
    Réponses: 4
    Dernier message: 17/12/2002, 22h53

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