Comparer une chaine de caractère dans un tableau

Résolu
europe21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -  
europe21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   - 14 août 2020 à 19:21
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
A voir également:

3 réponses

jordane45 Messages postés 38480 Date d'inscription   Statut Modérateur Dernière intervention   4 746
 
Bonjour

Tu parles de tableau... Donc d'array ?
Si c'est ça... Il existe des fonctions php pour ça... In_array par exemple
0
europe21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention  
 
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
jordane45 Messages postés 38480 Date d'inscription   Statut Modérateur Dernière intervention   4 746
 
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
europe21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention  
 
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