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 :

[Tableaux] Tri de tableau


Sujet :

Langage PHP

  1. #21
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    que je suis un boulet, un énorme boulet même....

    quand je dis que c'est pas bon de rester trop longtemps sur le meme code....

  2. #22
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Merci ca marche impeccable, on peut passez à la seconde question

    Comment je fais pour trier $tableau pas date_paiement

    J'ai fait

    sort($tableau)

    cela semble suffire mais j'aimerais avoir votre confirmation

  3. #23
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Il y a plusieurs méthodes pour trier un tableau et je crois que toutes sont expliquées dans la doc
    Hint : array_multisort()

  4. #24
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par Yogui
    Salut

    Il y a plusieurs méthodes pour trier un tableau et je crois que toutes sont expliquées dans la doc
    Hint : array_multisort()
    Je sais mais j'aurias voulut savoir laquelle vous me conseillez et pourquoi ?

  5. #25
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    En général, il y a toujours une méthode qui fonctionne mieux que les autres ou qui est plus simple (en un mot : qui est plus adaptée).
    Je n'ai pas suivi ton histoire mais il y a deux méthodes principales pour trier un tableau (1- tableau normal et 2- tableau multidimensionnel) : pas de quoi se noyer dans les informations !

  6. #26
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    usort est très bien pour ce genre de tri :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function compare_selon_mon_critere($a, $b) {
       return strnatcasecmp($a['date_paiement'], $b['date_paiement']);
    }
     
    usort($tableau, 'compare_selon_mon_critere');

  7. #27
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Le problème c'est que ta fonction trie par odre alphabétique moi je voudrais trier par ordre de date sachant que ma date est du format :

    8 Décembre 2006 10:53:20
    Est ce que quelqu'un peut m'aider je m'en sors pas la...

  8. #28
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    pas possible. enfin si mais assez couteux. le plus simple pour comparer deux dates est d'utiliser le format année-mois-jour-heures-minutes-secondes

  9. #29
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    effectivmeent je m'en suis rendu compte et je l'ai passé a ce format, donc après si je fais juste sort($tableau) ca suffit non,

    mon format est maintenant
    2005-12-08 11:22:34

  10. #30
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Tiens, essaie ceci : (pas testé)
    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
    function strtotime_fr($str) {
       $str_en = preg_replace(
          array(
             '`janvier`i',
             '`février`i',
             '`mars`i',
             '`avril`i',
             '`mai`i',
             '`juin`i',
             '`juillet`i',
             '`aout`i',
             '`septembre`i',
             '`octobre`i',
             '`novembre`i',
             '`décembre`i'
          ),
          array(
             'January',
             'February',
             'March',
             'April',
             'May',
             'June',
             'Jully',
             'August',
             'September',
             'October',
             'November',
             'December'
          ),
          $str
       );
       return strtotime($str_en);
    }
     
    function compare($a, $b) {
       return strcmp(strtotime_fr($a['date_paiement']), strtotime_fr($b['date_paiement']));
    }
     
    usort($tableau, 'compare');

  11. #31
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par schlough
    effectivmeent je m'en suis rendu compte et je l'ai passé a ce format, donc après si je fais juste sort($tableau) ca suffit non,

    mon format est maintenant
    2005-12-08 11:22:34
    Non ca ne suffit pas, il faut utiliser usort pour lui dir quel colonne il doit utiliser.

  12. #32
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    tu aurais pas zappé un peu mon message juste au dessus ??

    je suis passé sur un fomat avec que des chiffrees, j'ai fais un sort sur mon tableau a priori il n'y a aucun probleme, j'aurais juste voulu une confirmation...

  13. #33
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par Mr N.
    Citation Envoyé par schlough
    effectivmeent je m'en suis rendu compte et je l'ai passé a ce format, donc après si je fais juste sort($tableau) ca suffit non,

    mon format est maintenant
    2005-12-08 11:22:34
    Non ca ne suffit pas, il faut utiliser usort pour lui dir quel colonne il doit utiliser.
    je comprends pas ta remarque la...

    avec un sort, il va prendre la plus petite année apres le plus petit mois et apres le plus petit jour etc donc ca pose pas de probleme...

  14. #34
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Le temps que je tape ma proposition de code tu avais déjà répondu. Nos posts ce sont croisés.

    Sinon sort convient pour un tableau de types 'simples' (int, string, date) si tu dois trier un tableau contenant des type mixed sort ne convient plus.

  15. #35
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    j'ai pourtant fait une dizaine de test et aucun probleme a signaler...

    qinon quel fonction utiliser avec usort ?

Discussions similaires

  1. [Tableaux] Tri de tableau
    Par WagaSeb dans le forum Langage
    Réponses: 16
    Dernier message: 24/05/2007, 12h41
  2. [Tableaux] Tri de tableau
    Par winnie82 dans le forum Langage
    Réponses: 8
    Dernier message: 25/07/2006, 10h32
  3. [Tableaux] Tri de tableau
    Par BenoitDenis dans le forum Langage
    Réponses: 16
    Dernier message: 27/02/2006, 15h32
  4. [Tableaux] tri de tableau deux dimensions
    Par oursquetaire dans le forum Langage
    Réponses: 8
    Dernier message: 27/12/2005, 14h27
  5. [Tableaux] tri de tableau
    Par rdams dans le forum Langage
    Réponses: 19
    Dernier message: 08/11/2005, 13h46

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