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] Comparaison pondérée de chaînes


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Points : 210
    Points
    210
    Par défaut [Tableaux] Comparaison pondérée de chaînes
    Bonjour à tous,

    j'ai à comparer deux champs de deux tables distincts d'une base de données, pour faire le lien de l'une à l'autre. Le problème est que ce sont des champs textes, entrés à la main par l'utilisateur sans contrôle de saisie. Il n'y a bien évidement pas de lien entre les tables par une clé étrangère, ce serait trop simple...

    Bref, le comparaison fonctionne très bien quand les chaînes sont identiques (jusque là, normal), mais pas lorsque l'utilisateur s'est trompé d'une lettre (normal aussi, mais plus embêtant).

    J'ai cherché, mais je n'ai pas trouvé de fonction php permettant une comparaison "pondérée" de deux chaînes. Une sorte de fonction non binaire, qui pourrait renvoyer par exemple un indice entre 0 et 1 indiquant le degré de proximité des chaînes.

    Est ce qu'une telle fonction existe, ou est ce qu'il faut que je prévoie de la coder par moi-même ? Je n'ai rien contre un peu de codage bidouille maison, mais je voudrais être sûr de ne pas ré-inventer la roue...

    Merci
    Nico

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Salut ! Je ne pense pas qu'il y ait de fonctions par défaut dans php pour ca mais voila deux petites idées:

    1/ Tu tries ta chaine par ordre alphabétique (comme un tableau de caractères) pour récupérer pour chaque lettre le nombre d'occurrences et tu te définis une fonction qui va indiquer au bout de combien de caractères différents une chaine sera considérée différente => attention aux anagrammes par contre!
    2/ Tu peux utiliser la notion de soundex (si la lettre en trop est un S par exemple a la fin et non pas une faute de frappe) qui est implémentée dans php soundex()

    Bon courage!

  3. #3
    Membre actif Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Points : 210
    Points
    210
    Par défaut
    Bonnes idées, je vais essayer de partir là-dessus. Un autre projet vient de me tomber dessus, mais je pense que je mettrai le code de la fonction en ligne d'ici la fin de la semaine, si ça peut intéresser quelqu'un...

  4. #4
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 44
    Points : 47
    Points
    47
    Par défaut
    Je suis d'accord pour le coup du soundex, qui fait également partie des fonctions de mysql.

  5. #5
    Membre actif Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Points : 210
    Points
    210
    Par défaut
    Finalement, le soundex suffit à l'usage pour lequel j'avais besoin de cette fonction merci à vous

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

Discussions similaires

  1. [Tableaux] Comparaison de 2 tableaux
    Par vodasan dans le forum Langage
    Réponses: 9
    Dernier message: 10/01/2008, 08h51
  2. [Tableaux] Retrouver une sous chaîne.
    Par Huntress dans le forum Langage
    Réponses: 8
    Dernier message: 20/03/2006, 15h31
  3. [Tableaux] comparaison numerique php
    Par kamel_leon dans le forum Langage
    Réponses: 8
    Dernier message: 08/03/2006, 14h35
  4. [Tableaux] comparaison de variables
    Par cheucher dans le forum Langage
    Réponses: 17
    Dernier message: 21/02/2006, 13h03
  5. Réponses: 1
    Dernier message: 24/12/2005, 14h18

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