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 :

Extraire des valeurs


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut Extraire des valeurs
    Bonjour,

    J'aurais besoin de votre aide car je bloque.
    J'ai une chaine de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $quoi = 'institut de beauté et spa minute';
    Ensuite, j'ai un array comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $bigTable = array(
    	"commerces"=> array("0","Tous les services et commerces"),
    	"institut de beaute et spa"=> array("2","Instituts de beauté et Spa"), 
    	"institut de beaute"=> array("2","Instituts de beauté et Spa"), 
    	"instituts de beaute et spa"=> array("2","Instituts de beauté et Spa")
    );

    Mon but est de ressortir de quoi que "institut de beauté et spa" fait partie de $bigTable avec son ID et ensuite de faire une vairable avec ce qu'il reste, c'est à dire dans l'exemple "minute"

    Merci de votre aide !
    Vincent Pieplu
    Développeur Site Internet

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Points : 470
    Points
    470
    Par défaut
    Pas clair ton explication...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach($bigTable as $k => $v)
    {
       $souschaine = strstr($quoi, $k, true);
       if($souschaine !== false)
          echo 'la clef '.$k.' correspond, avec "'.substr($quoi, strlen($souschaine)).'" derriere ! Le tableau à cette clef contient : '.$v[0].' et '.$v[1].'<br />';
    }

  3. #3
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Questions, en réel, mon array bigTable fait 850 lignes, est ce que c'est bien ou trop ? Je devrais passer par une table MySQL ?

    Sinon, pour reformuler mon problème,
    J'ai une variable $quoi, et je voudrais savoir si une partie de la chaine est contenu dans $bigTable. Si c'est le cas, je dois ressortir son ID.
    Donc pour le $quoi en exemple, je dois pouvoir ressortir
    $metier = Instituts de beauté et Spa
    $ID = 2
    tag (c'est ce qui n'est pas comme métier) = minute

    C'est mieux ?

    Pour ce que tu as mis au dessus, on me retourne :
    Warning: Wrong parameter count for strstr()

    Merci
    Vincent Pieplu
    Développeur Site Internet

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Points : 470
    Points
    470
    Par défaut
    Citation Envoyé par PIEPLU Voir le message
    J'ai une variable $quoi, et je voudrais savoir si une partie de la chaine est contenu dans $bigTable. Si c'est le cas, je dois ressortir son ID.
    C'est bien là que ce n'est pas clair !

    Contenu où ? Dans la clef (puisque tu indexes par clef texte, ce que test mon exemple) ? à l'indexe 2 du tableau contenu dans chaque case du tableau primaire ? L'ID, c'est quoi ? C'est le numéro contenu dans la 1er case ? Ta construction n'est pas du tout logique non plus... Pourquoi faire un tableau indexé par une valeur contenue dans ce même tableau ?

    Alors pour exemple, corrige en écrivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach($bigTable as $k => $v)
    {
       $souschaine = strstr($quoi, $k);
       if($souschaine !== false)
          echo $souschaine.' => '.$v[1].'<br />';
    }
    Mais j'insiste, ta structure de stockage n'a aucun sens...
    Si tu veux stocker proprement (et évidemment qu'une BDD serait mieux), c'est comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $bigTable = array(
        0 => 'Tous les services et commerces',
        1 => 'institut de beaute et spa',
        2 => 'institut de beaute'
    );

    Et pour ta recherche, ça devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach($bigTable as $k => $v)
    {
       $souschaine = strstr($quoi, $v);
       if($souschaine !== false)
          echo 'clef : '.$k.' => '$souschaine.'<br />';
    }

  5. #5
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Je viens finalement de créer un table Activites avec
    id_activite | IDMETIER | SYNONYME | METIER
    J'ai simplement mis pour le moment
    1 2 institut de beaute et spa Instituts de beauté et Spa
    2 2 instituts de beaute et spa Instituts de beauté et Spa
    Mais je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $quoi='institut de beaute et spa minute';
    $requete = mysql_query("select IDMETIER,SYNONYME,METIER from Activites where MATCH(METIER) AGAINST (\"".$quoi."\" IN BOOLEAN MODE)");
    Faut encore que j'arrive a ressortir le mot minute qui ne fait pas partie du "metier"

    Merci de votre aide
    Vincent Pieplu
    Développeur Site Internet

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Points : 470
    Points
    470
    Par défaut
    Ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($res = mysql_fetch_array($requete))
    {
       echo substr($quoi, strlen($res['METIER '])).'<br />'; 
    }

Discussions similaires

  1. Extraire des valeurs d'un fichier txt
    Par boby35 dans le forum Octave
    Réponses: 5
    Dernier message: 16/04/2008, 12h05
  2. Réponses: 11
    Dernier message: 31/03/2008, 19h18
  3. Réponses: 2
    Dernier message: 29/05/2007, 12h36
  4. Extraire des valeurs d'une matrice
    Par Kcyril dans le forum MATLAB
    Réponses: 4
    Dernier message: 23/04/2007, 14h59
  5. [vb.net][datatable] retrouver extraire des valeur unique
    Par arnolem dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/01/2006, 10h33

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