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] Conseil: Variable et ordre alphabétique


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut [Tableaux] Conseil: Variable et ordre alphabétique
    Hi all,

    Je voudrais solliciter vos connaissances pour m'apporter conseil sur quelques lignes de codes que je voudrais mettre en place.

    Je dispose d'une variable "$ports_dep", dans cette variable, il peut y avoir une ou plusieurs villes, séparées par des virgules.

    c'est à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ports_dep = " Paris, rome, Moscou" 
     
    //ou avec des mots composé
     
    $ports_dep= "Paris, Los Roques, Rome, Moscou"
    Ce que je voudrais faire, c'est de prendre ces mots seul ou composé, et des les mettres dans l'ordre alphabétique.

    Auriez vous une idée ?

    Merci pour vos réponses

    Ps: Je continue à explorer mon meilleur ami

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    tu utilises la fonction explode() pour récupérer chaque nom de ville dans un tableau et ensuite tu utilises asort() pour trier le tableau. Ou quelquechose dans ce gout la.

  3. #3
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    ok , et si je veux les remettre dans le même style d'affichage dans l'ordre ?

    Merci pour tes réponses

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    ben une troisieme étape:
    tu prends les éléments de ton tableau trié et tu les concatènes les uns aux autres en les séparant par une virgule

  5. #5
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    Donc un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $Villes = "Paris, Los roques, Agadir, Moscou, Madrid";
    //explosion de $villes en tableau
    $tabVilles= explode(",", $Villes);
     
    //Tri des valeurs du tableau
    sort($tabVilles);
    Cela devrait fonctionner, mais je vois mal comment faire la concaténation

    peut être ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($tabVilles as $key => $val){
         echo "".$val.",".$val+1." ";
    }
    Mais je suis loin d'être convaincu lol

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Et pourtant... ^^
    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
    <?php 
    $Villes = "Paris, Los roques, Agadir, Moscou, Madrid";
    //explosion de $villes en tableau
    $tabVilles	= explode(",", $Villes);
     
    //Tri des valeurs du tableau
    sort($tabVilles);
     
    // récupère dans une string les valeurs triées
    $VillesTri	= "";
    foreach($tabVilles as $ville)
    	{
    	//verifie si on a déjà sorti une ville (pour la virgule)
    	if($VillesTri != "")
    		{
    		$VillesTri .= ",";
    		}
    	$VillesTri	.= $ville;
    	}
     
    echo $VillesTri;
    ?>
    Sort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Agadir, Los roques, Madrid, Moscou,Paris

  7. #7
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    ah oui j'y était presque !!

    Merci beaucoup pour ton aide !!

    En fait petit problème, lol j'ai testé avec beaucoup plus de mot (une dizaine) et là ça essai de les classée, mais je retrouve parfois un mot commencant par B ou un autre par P , au début ou au milieu, voir l'un à coté de l'autre, faut-il un autre sort ? ou mettre un sort_tag ?

    Sinon existe-t-il un moyen de mettre une majuscule à chaque première lettre du mot ?

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par mLk92
    Sinon existe-t-il un moyen de mettre une majuscule à chaque première lettre du mot ?
    ucfirst ou ucwords

    Citation Envoyé par mLk92
    En fait petit problème, lol j'ai testé avec beaucoup plus de mot (une dizaine) et là ça essai de les classée, mais je retrouve parfois un mot commencant par B ou un autre par P , au début ou au milieu, voir l'un à coté de l'autre
    A cause des espaces ?

    Il n'y a pas qu'une seule façon d'écrire la chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function trier_liste_villes($liste) {
        $villes = preg_split('/,\s*/', $liste, -1, PREG_SPLIT_NO_EMPTY);
        sort($villes);
        return ucwords(implode(', ', $villes));
    }

  9. #9
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    J'avais pensé au expressions régulière mais je m'y connais pas très bien donc je préférais un autre moyen mais c'est vrai que celui est pas très compliqué !!

    Ta fonction fonctionne

    koopajah merci pour tes réponses, elles m'ont apportés de nouvelles connaissances !

    merci à vous deux

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

Discussions similaires

  1. [DATA] Classer les variables par ordre alphabétique dans une table
    Par alers dans le forum SAS Base
    Réponses: 5
    Dernier message: 11/03/2015, 15h40
  2. [Tableaux] Trier un tableau par clé par ordre alphabétique
    Par pmithrandir dans le forum Langage
    Réponses: 3
    Dernier message: 20/08/2008, 15h00
  3. [Tableaux] Classer un tableau par ordre alphabétique
    Par s-c-a-r-a dans le forum Langage
    Réponses: 4
    Dernier message: 07/04/2008, 00h48
  4. Réponses: 3
    Dernier message: 07/02/2008, 14h34
  5. [Tableaux] dossiers par ordre alphabétique
    Par ctrl+z dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2007, 13h18

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