Comparer une chaine de caractère dans un tableau

Résolu
europe21 Messages postés 65 Statut Membre -  
europe21 Messages postés 65 Statut Membre -
Bonjour,

je suis sous symfony 4.

Je voudrais comparer une chaine de caractère a chacun des elements d'un tableau pour recupérer l'element identique. en fait je voudrai parcourir mon tableau et si un element est identique a ma chaine de caractère pouvoir le recuperer.Et j'avoue ne pas savoir comment faire.

$repo = $this->getDoctrine()->getRepository(CategoryAdherent::class);
$cat = $repo->findAll();

foreach($cat as $listecat)
{
$liste= $listecat->getTitle();
var_dump($liste. '<br />');

}

lorsque je fais un var_dump j'ai bien ma liste de categorie. Mais comment la comparer à ma chaine de caractere qui est dans mon cas $adherent->getSubCategory ?

Merci de votre aide.

Configuration: Windows / Chrome 84.0.4147.125

3 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour

    Tu parles de tableau... Donc d'array ?
    Si c'est ça... Il existe des fonctions php pour ça... In_array par exemple
    0
  2. europe21 Messages postés 65 Statut Membre
     
    Oui c'est un array.
    J'ai fait cela:
    $repo = $this->getDoctrine()->getRepository(CategoryAdherent::class);;
    $cat = $repo->findAll();

    foreach($cat as $listecat)
    {
    $liste= $listecat->getTitle();

    if (in_array("u 19", $liste)) {
    var_dump('c est bon');

    }

    }


    Mais j'ai ce message d'erreur:
    Warning: in_array() expects parameter 2 to be array, string given
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Le message d'erreur semble assez clair tu as variable liste n'est pas un array....
      Un var_dump de cette variables te donne quoi ?
      0
  3. europe21 Messages postés 65 Statut Membre
     
    string(4) "u 19" string(4) "u 20" string(4) "u 18" string(1) "a" string(1) "b" string(3) "u15" string(9) "dirigeant"


    Par contre j'obtiens un resultat si je code comme cela:
    foreach($cat as $listecat)
    {
    $liste= $listecat->getTitle();

    if (in_array($adherent->getSubCategory(), array($liste))) {
    var_dump('c est bon');

    }else
    var_dump('c est pas bon');
    }


    J'obtiens cela:
    string(13) "c est pas bon" string(13) "c est pas bon" string(9) "c est bon" string(13) "c est pas bon" string(13) "c est pas bon" string(13) "c est pas bon" string(13) "c est pas bon"
    0