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 :

trier un tableau par date [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut trier un tableau par date
    Bonjour,
    J'ai un tableau contenant des nom de fichiers, de la forme:
    [0][fichier1]
    [1][fichier2]
    ...
    [N]fichierN]

    et un tableau de la forme
    [fichier1][date]
    [fichier2][date]
    ...

    avec date de la forme "2011-05-19 15:37:33"

    Et je souhaite trier mon second tableau du plus récent au plus vieux.
    le souci c'est que je ne vois pas trop comment faire,j'ai tenté en utilisant usort() de la façon suivante:

    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
     
    <?php
     
    function sort_date($a, $b)
    {
    $d1 = new DateTime($a);
    $d2 = new DateTime($b);
    if ($d1 == $d2)
        return 0;
    if ($d1 < $d2)
        return (1);
    return (-1);
    }
     
    $date = usort($date, "sort_date");
    ?>
    mais mon tableau ressort vide.

    Quelqu'un a il une idée de comment faire ?

    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
    Par défaut
    Utilise array_multisort()

    Ce que tu fais ne vas pas car
    - $a et $b ne sont pas les dates, ce sont des tableaux array(date => valeur)
    - tu compares des objets (je ne pense pas que cela fonctionne)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    array_multisort() fonctionne au poil merci.

    au sujet des comparaison d'objet je ne sais pas trop comment ca fonctionne en php (je suis plus habituer au surcharge d'opérateurs en C++) mais dans la doc ils font des chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $date1 = new DateTime("now");
    $date2 = new DateTime("tomorrow");
     
    var_dump($date1 == $date2);
    var_dump($date1 < $date2);
    var_dump($date1 > $date2);
    ?>
    donc je pense que ca doit être possible.

    En tout cas merci.

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

Discussions similaires

  1. Trier un tableau par date
    Par totofe49 dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2010, 13h00
  2. Trier un tableau par rapport aux dates
    Par charline33 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 21/04/2009, 10h58
  3. Trier mes requete par date au format dd/mm/yy
    Par danje dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/09/2005, 19h06
  4. Trier un tableau par rapport à un autre tableau
    Par deaven dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/05/2005, 10h27
  5. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 01h04

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