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 :

Quelle(s) fonction(s) utiliser pour une comparaison de chaine ?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Quelle(s) fonction(s) utiliser pour une comparaison de chaine ?
    Bonsoir,

    je voudrais comparer 2 chaînes dans un champ d'une table mais je ne sais pas vraiment comment m'y prendre...

    Ma chaîne 1 : mot1 mot2 mot3 mot4 etc...
    Ma chaîne 2 : mot5 mot6 mot7 mot1 mot8 etc...

    Je cherche à comparer les chaînes 1 et 2 et à ressortir la similitude, donc dans mon exemple mot1. ( => cela servira à afficher des articles relatifs qui contiennet aussi le mot1).

    Les chaînes ne sont composées que de lettres, aucun caractères spéciaux.

    J'avoue que je sais pas trop comment m'y prendre, d'autant + que mon niveau en PHP n'est pas des meilleurs.

    Comment feriez-vous à ma place ?

    Merci d'avance de votre aide,

  2. #2
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    comparaison mot à mot
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
    $Machaine1 = "mot1 mot2 mot3 mot4 etc...";
    $Machaine2 = "mot5 mot6 mot7 mot1 mot8 etc...";
     
    $TabChaine1 = split(" ",$Machaine1);
    $TabChaine2 = split(" ",$Machaine2);
    $TabMotsCommun = null;
     
    //print_r($TabChaine1);
    //print_r($TabChaine2);
     
    foreach($TabChaine1 as $Mot1)
    {
    	foreach($TabChaine2 as $Mot2)
    	{
    		//echo $Mot1."|".$Mot2;
    		if($Mot1==$Mot2)
    		{
    			//echo "*";
    			$TabMotsCommun[]=$Mot1;
    		}
    		//echo "<br/>";
    	}
    }
    //print_r($TabMotsCommun);
    echo "Mot(s) Commun(s)<br/>";
    foreach($TabMotsCommun as $Mot)
    {
    	echo $Mot;
    	echo "<br/>";
    }
     
    ?>

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    Voici comment faire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    $str_one = 'mot1 mot2 mot3 mot4 etc...';
    $str_two = 'mot5 mot6 mot7 mot1 mot8 etc...';
    $common  = array_intersect(explode(' ', $str_one), explode(' ', $str_two)); // mot1 etc...
     
    ?>

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut. Il existe levenshtein qui le fait très bien . exemple : http://www.developpez.net/forums/d70...es-semblables/

Discussions similaires

  1. Réponses: 18
    Dernier message: 11/05/2007, 19h35
  2. Réponses: 29
    Dernier message: 02/04/2007, 01h14
  3. Réponses: 4
    Dernier message: 02/05/2006, 12h08
  4. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 16h32

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