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] classement de mots en fonction de leur terminaison


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Par défaut [Tableaux] classement de mots en fonction de leur terminaison
    Bonsoir,
    j'ai sur une page html une liste d'environ 500 mots classés par ordre alphabétique et je souhaiterais maintenant les classer en fonction de leurs terminaisons, pour faire un dictionnaire des rimes.
    Y a t-il une fonction php pour faire ça ?

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Il n'y en a aucune à ma connaissance, cependant, on peut facilement faire une petite fonction pour inverser un mot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function reverse_str($string)
    {
       $Nstr = ""
       $c = strlen($string)
       for($i = $c - 1; $i >= 0; --$i) $Nstr += $string{$i};
       return $Nstr;
    }
    ensuite, il te suffit de faire un tableau associatif des mots (clé = mot inversé, valeur = mot normal) et de trier par rapport aux clés avec ksort
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Par défaut
    merci de cette astuce, c'est en effet une fonction comme ça que je cherchais. Cependant je suis novice en php et je vois pas trop comment faire ce "tableau associatif des mots" avec "ksort"... pourrais-tu m'expliquer ?

    ps : voici à quoi ressemble mon code htlm
    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
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="robots" content="none">
    <title>dico des rimes</title>
    </head>
    <body>
      Abhorrer<br>
      Aboucher<br>
      Aboulique<br>
      bacchanales<br>
      Baguenauder<br>
      Barcane <br>
      Bayou <br>
      Cabale <br>
      Cacique<br>
      callipyge<br>
      Camarde<br>
      camouflet<br>
      canop&eacute;e<br>
      Capiteux<br>
      Capitole.....<br>
    </body>
    </html>

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    je suppose que tes mots sont stockés dans un tableau classique en PHP ?

    et bien cette fonction devrait faire ce que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function sort_by_end($array)
    {
        $Narr = array();
        foreach($array as $v) $Narr[reverse_str($v)] = $v;
        return ksort($Narr);
    }
    si tu veux pouvoir parcourrir le tableau avec un for simple (avec un indice)
    il faut remplacer la ligne avec le return par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return array_values(ksort($Narr));
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Par défaut
    Ci dessous le code que j'ai écrit... il doit y avoir quelquechose de faux car rien ne s'affiche quand j'appelle la page

    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
    <?php
        mysql_connect("sql.free.fr", "matperino", "mdp");
        mysql_select_db("matperino"); 
     
         $Narr = mysql_query("SELECT * FROM listedemots;"); 
     
    	  function sort_by_end($array)
    {
        $Narr = array();
        foreach($array as $v) $Narr[reverse_str($v)] = $v;
        return array_values(ksort($Narr));
    }
     
        mysql_close();
      ?>
    une idée ????
    merci

  6. #6
    Membre éclairé Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Par défaut
    Bonne nuit à tous minuit trente)

    en supposant que tes mots ne soit pas déjà dans un tableau : il faut commencer pas les mettre.

    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
    $tab = array();
     
    $tab[] = "mot4";
    $tab[] = "mot3";
    $tab[] = "mot2";
    $tab[] = "mot1";
     
    //j'ais insérer le 4 en premier pour que le resultat du tri soit apparent
     
    //on affiche le resultat
    echo "<pre>";
    print_r($tab);
    echo "</pre>";
     
    //on crée le tableau inversé :
     
    $tabi = sort_by_end($tab);
     
    //on affiche le résultat
    echo "<pre>";
    print_r($tab);
    echo "</pre>";
    c'est pas testé mais ça peut t'étre utile

    voila,
    re bonne nuit @ tous

  7. #7
    Membre éclairé Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Par défaut
    là je vois pas ...
    ton code est bon ( syntaxiquement ) mais s'il n'y à rien d'autre c'est normale que rien ne s'affiche car ce code n'affiche rien.

    ha si :

    FROM listedemots;"

    t'as un ';' à la fin de ta requette. je suis pas sur que se soit une faute (et même si s'en ais une tu aurais du avoir un message d'erreur.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/11/2010, 14h38
  2. trouve la note du classement en fonction de leur note
    Par popofpopof dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/01/2009, 19h10
  3. Réponses: 4
    Dernier message: 16/01/2008, 13h12
  4. classement de nombres en fonction de leur freq d'apparition
    Par didier.schmit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/08/2007, 09h08
  5. Affichage d'évènements en fonction de leur date ?
    Par swirtel dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/05/2005, 10h30

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