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 tableau avec underscore et chiffres


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut [Tableaux] Tri tableau avec underscore et chiffres
    salut à tous,

    Comment je peux trier mon tableau qui contient ces valeurs par exemple (dans cet ordre), resultant d'un readdir() :
    1_1.pdf
    1_8.pdf
    1_16.pdf
    1_14.pdf
    1_3.pdf
    1_2.pdf
    1_25.pdf

    Lorsque je tri, çà fait ceci :
    1_1.pdf
    1_14.pdf
    1_16.pdf
    1_2.pdf
    1_25.pdf
    1_3.pdf
    1_8.pdf

    Et je voudrai çà :
    1_1.pdf
    1_2.pdf
    1_3.pdf
    1_8.pdf
    1_14.pdf
    1_16.pdf
    1_25.pdf


    J'ai essayé pas mal de fonction de tri, mais aucune ne semble faire ce que je veux..

    Merci à tous,
    Fabrice

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Pour les tris "non standard", j'utilise dorénavant la fonction usort() en lui fournissant une fonction de mon cru

    Typiquement dans ton cas, elle aurait cette tete :

    décomposition des deux éléments en sous éléments
    1_18.pdf => 1,18,.pdf

    Ensuite, il suffit de comparer le deuxième paramètres. Je te laisse regarder un peu, si tu ne trouve pas je te donnerais plus d'indications.

    Pierre

  3. #3
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut
    oui, je vois.

    J'extrais bien les 3 elements, avec strpos() et substr(), mais ensuite, faut faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $value1 < $value2
    ?

    Fabrice

  4. #4
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    En gros, la fonction callback doit etre comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function Compare($a,$b) {
    //on extrait la partie milieu de $a et de $b dans $num_a et $num_b
    if $num_a > $num_b return 1;
    elseif $num_a < $num_b return -1;
    else return 0;
    }

  5. #5
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut
    ok, çà y est, çà marche nickel...

    Un grand merci à toi.

    Fabrice

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

Discussions similaires

  1. [Tableaux] tri tableau avec fonction
    Par ascito dans le forum Langage
    Réponses: 7
    Dernier message: 10/09/2008, 14h21
  2. [Tableaux] tri tableau php
    Par billebo dans le forum Langage
    Réponses: 16
    Dernier message: 09/03/2007, 13h40
  3. [Tableaux] Remplir tableau avec ordre defini
    Par nicerico dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2006, 10h28
  4. [Tableaux] tri tableau avec date
    Par omelhor dans le forum Langage
    Réponses: 12
    Dernier message: 17/10/2006, 20h24
  5. [Tableaux] Tri tableau
    Par licorne dans le forum Langage
    Réponses: 3
    Dernier message: 20/03/2006, 12h14

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