Récupérer une fois les deux premiers caractères d'une liste de mots
6 messages
• Page 1 sur 1
-

Meeuuuhhh - WRInaute passionné

- Messages: 2046
- Inscription: 8 Jan 2007
Récupérer une fois les deux premiers caractères d'une liste de mots
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 ?
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 ?
-

5_legs - WRInaute passionné

- Messages: 2072
- Inscription: 30 Avr 2006
Re: Récupérer une fois les deux premiers caractères d'une liste de mots
meuhh euh je veux dire Bonsoir 
à tout hasard :

Pour le second point avec un select ... LIKE'tonancre%' ça devrait le faire
à tout hasard :
- Code: Tout sélectionner
SELECT DISTINCT LEFT(tonchamp, 2) FROM tatable
Pour le second point avec un select ... LIKE'tonancre%' ça devrait le faire
Dernière édition par 5_legs le Mar Juin 30, 2009 21:49, édité 2 fois.
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: Récupérer une fois les deux premiers caractères d'une liste de mots
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 :
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.
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: Tout sélectionner
$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.
-

Meeuuuhhh - WRInaute passionné

- Messages: 2046
- Inscription: 8 Jan 2007
Re: Récupérer une fois les deux premiers caractères d'une liste de mots
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).
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).
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Récupérer une fois les deux premiers caractères d'une liste de mots
En perl:
Ca doit donner quelque chose de similaire en php, genre:
A vérifier, je ne programme pas en php bien souvent.
Jacques.
- Code: Tout sélectionner
my %hash;
$hash{substr($_,0,2)} = undef for @list;
my @result = keys %hash;
Ca doit donner quelque chose de similaire en php, genre:
- Code: Tout sélectionner
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.
-

5_legs - WRInaute passionné

- Messages: 2072
- Inscription: 30 Avr 2006
Re: Récupérer une fois les deux premiers caractères d'une liste de mots
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
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
6 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Récupérer les premiers caractères d'une url
- Récupérer seulement les x premiers caractères avec SELECT
- Pertinence des premiers caractères
- Problème premiers caractères de page !
- Texte visible 200 premiers caractères
- Organisation premiers mots
- Récupérer un nombre fixé de caractères...
- Récupérer une expression qui se répète plusieurs fois
- [Résolu] Limiter à x caractères, comment tous les récupérer?
- Premiers mots de la page d'accueil - Importance pour Google
- Conseils d'optimisation de la balise TITLE (titre d'une page HTML) - 04-08-2008
- Google API : guide de développement de l'API Google - 20-09-2002
- Google Sets - 17-07-2002
- Optimiser le nombre de mots dans les textes de liens - 03-10-2005
- Nouvelle étude de WebRankInfo : les mots-clés et le référencement - 04-01-2003
- Bien choisir le titre de chaque page : conseil n°4 en référencement - 04-08-2008
- Bing fait moins bien que Live Search pour son lancement en France - 29-06-2009
Consultez la description détaillée des produits ou services de Google suivants : Google Sets, Google Suggest
- Générateur de mots-clés
Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés. - Analyseur de densité
Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
