Récupérer une fois les deux premiers caractères d'une liste de mots

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Meeuuuhhh, 30 Juin 2009.

  1. Meeuuuhhh
    Meeuuuhhh WRInaute passionné
    Inscrit:
    8 Janvier 2007
    Messages:
    1 498
    J'aime reçus:
    0
    Bonjour,


    J'ai du mal à voir comment faire la chose qui suit...
    Voilà : J'ai une liste de mots classés par ordre alphabétique, par exemple :

    - Banane
    - Bateau
    - Bazzard
    - Blanc
    - Bleu
    - Bouffon
    - Boulet

    Je souhaite récupérer une seule fois les deux premières lettres de chacun de ces mots.

    Ce qui donne ici :
    - Ba
    - Bl
    - Bo

    Ca c'est la première partie.

    La deuxième partie, c'est d'ajouter une ancre au premier mot de la liste présentant les deux caractères en question. Ainsi, en cliquant sur "Bo", on arrive directement à "Bouffon" (désolé pour l'exemple).

    Voyez-vous comment faire ça, s'il vous plait ?
     
  2. 5_legs
    5_legs WRInaute passionné
    Inscrit:
    30 Avril 2006
    Messages:
    1 521
    J'aime reçus:
    0
    meuhh euh je veux dire Bonsoir :)

    à tout hasard :

    Code:
    SELECT DISTINCT LEFT(tonchamp, 2) FROM tatable
    :?:

    Pour le second point avec un select ... LIKE'tonancre%' ça devrait le faire
     
  3. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 003
    J'aime reçus:
    128
    AVec un tableau multi-dimensions tu devrais pouvoir faire ça :

    1. Tu parcours chaque item de ta liste, et tu extrais à chaque fois les deux premiers caractères :

    a. Soit ces deux premières caractères sont déjà utilisé comme clé dans ton tableau (tu testes ça avec http://fr2.php.net/manual/en/function.array-key-exists.php), donc tu affectes le mot que tu es en train de parcourir comme une valeur associée à cette clé

    b. Soit ils ne sont pas connus et donc tu crée en même temps la clé et sa première valeur

    Tu auras donc au final un tableau qui ressemble à ça :

    Code:
    $t_wordlist = array(
         'ba' => array ('banane','bateau','bazard'),
         'bl' => array (''blanc','bleu'),
         'bo' => array ('bouffon','boulet'),
    )
    
    Une fois que tu as ce tableau, il n'est pas très dur de le parcourir clé par clé, puis valeur après valeur, en faisant un echo pour chaque item, et en intégrant ce echo dans un <a></a> s l'item que tu es en train d'afficher est le premier connu pour la clé en cours.
     
  4. Meeuuuhhh
    Meeuuuhhh WRInaute passionné
    Inscrit:
    8 Janvier 2007
    Messages:
    1 498
    J'aime reçus:
    0
    Hum... En fait, le problème du tableau c'est que si la liste fait plus de 100 mots et c'est le cas, ça va faire 100 tests sur un tableau de 100 cases... Ca me semble beaucoup (ceci dit, je maîtrise mal les histoires de tableaux php).

    Je viens d'avoir une autre idée :
    Je récupère les deux premiers caractères du premier mot. Je les place en variable. Je teste les deux premiers caractère du second mots pour savoir s'ils sont similaire à la variable précédente. Si oui, je pose une ancre au mot précédent (comment remonter d'une case uh uh...)
    Si non, je poursuis le script jusqu'à qu'un mot commence différemment des précédents, etc...

    Il reste à récupérer une seule fois les deux premiers caractères de chaque mot pour faire les liens d'ancre, tout en haut du tableau. Pour ça, l'idée de druart est sans doute bonne, si toutefois ça requête est possible (là je dois aller au dodo, je teste demain matin).
     
  5. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    En perl:

    Code:
    my %hash;
    $hash{substr($_,0,2)} = undef for @list;
    my @result = keys %hash;
    
    Ca doit donner quelque chose de similaire en php, genre:

    Code:
    foreach ($liste as $i)
    {
      $hash[substr($i,0,2)] = 1;
    }
    $resultat = array_keys($hash)
    
    A vérifier, je ne programme pas en php bien souvent.

    Jacques.
     
  6. 5_legs
    5_legs WRInaute passionné
    Inscrit:
    30 Avril 2006
    Messages:
    1 521
    J'aime reçus:
    0
    En fait il y a plusieurs solutions comme tu le vois.
    Après il faut savoir ce que tu veux en faire exactement et choisir celle qui mangera le moins de ressources.

    Tiens-nous au courant ;-)
     
Chargement...
Similar Threads - Récupérer fois premiers Forum Date
Récupérer une expression qui se répète plusieurs fois URL Rewriting et .htaccess 23 Septembre 2008
Commande site : monsite.com. Comment récupérer les URL dans un fichier ? Crawl et indexation Google, sitemaps 2 Juillet 2022
Récupérer URL destination liste redirection Netlinking, backlinks, liens et redirections 22 Novembre 2021
Récupérer les 10 plus grandes valeurs dans un fichier JSON Développement d'un site Web ou d'une appli mobile 18 Novembre 2021
Js : récupérer un élément dans un array Développement d'un site Web ou d'une appli mobile 23 Octobre 2021
FORMULAIRE FB ADS récupérer les données Facebook 28 Juillet 2021
Récupérer le premier et dernier enregistrement sql Développement d'un site Web ou d'une appli mobile 16 Juillet 2021
Comment récupérer le solde impayé de mon compte Adsense ? AdSense 26 Juin 2021
Search Console Sitemaps non indéxés ""Impossible de recuperer le sitemap" Crawl et indexation Google, sitemaps 23 Juillet 2020
Récupérer backlinks vers liens morts : fausse bonne idée ? Netlinking, backlinks, liens et redirections 6 Avril 2020
Récupérer le contenu d'une vidéo youtube Le café de WebRankInfo 23 Mars 2020
Comment récupérer un compte insta ouvert par un cybersquatteur ? Autres réseaux sociaux 29 Janvier 2020
comment récupérer mon positionnement Problèmes de référencement spécifiques à vos sites 5 Janvier 2020
Attendre des années avant de récupérer l'argent amassé sur adsense AdSense 23 Novembre 2019
Comment récupérer variable dynamique pour GTM ? Google Analytics 30 Septembre 2019
SELECT COUNT avec PDO et récupérer le résultat Développement d'un site Web ou d'une appli mobile 27 Mai 2019
récupérer id en php sans lien Développement d'un site Web ou d'une appli mobile 25 Avril 2019
Récupérer events via API google analytics Google Analytics 6 Avril 2019
Récupérer un numéro d'un paragraphe Développement d'un site Web ou d'une appli mobile 13 Décembre 2018
Récupérer un argument passé en shell_exec dans un fichier js Développement d'un site Web ou d'une appli mobile 7 Octobre 2018