Question sur in_array()

WRInaute passionné
Bonjour,

Dans la doc il est dit : "in_array — Indique si une valeur appartient à un tableau".
Pourquoi dans le code suivant c'est le "else" qui m'est retourné?
Pour que ça fonctionne, je suis obligé de mettre un point d'exclamation devant in_array .
Code:
<?php
//teste 1 avec tableau
$texte ="Ceci est un texte contenant le mot2 et le mot1 .";
$mots_interdits = array("mot1" , "mot2" , "mot3");
//in_array — Indique si une valeur appartient à un tableau
if(in_array($texte, $mots_interdits))
{
	echo 'Une des valeurs appartient au tableau!<br/>';
}
else
{
	echo 'Aucune valeur n\'appartient au tableau.<br/>';
}
?>
Merci
 
WRInaute impliqué
Essaie comme ça :
PHP:
<span class="syntaxdefault"><br /></span><span class="syntaxcomment">//teste&nbsp;1&nbsp;avec&nbsp;tableau<br /></span><span class="syntaxdefault">$texte&nbsp;</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Ceci&nbsp;est&nbsp;un&nbsp;texte&nbsp;contenant&nbsp;le&nbsp;mot2&nbsp;et&nbsp;le&nbsp;mot1&nbsp;."</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$mots_interdits&nbsp;</span><span class="syntaxkeyword">=&nbsp;array(</span><span class="syntaxstring">"mot1"&nbsp;</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"mot2"&nbsp;</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"mot3"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"Ceci&nbsp;est&nbsp;un&nbsp;texte&nbsp;contenant&nbsp;le&nbsp;mot2&nbsp;et&nbsp;le&nbsp;mot1&nbsp;."</span><span class="syntaxkeyword">);<br /></span><span class="syntaxcomment">//in_array&nbsp;—&nbsp;Indique&nbsp;si&nbsp;une&nbsp;valeur&nbsp;appartient&nbsp;à&nbsp;un&nbsp;tableau<br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">in_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$texte</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$mots_interdits</span><span class="syntaxkeyword">))<br />{<br />&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="syntaxstring">'Une&nbsp;des&nbsp;valeurs&nbsp;appartient&nbsp;au&nbsp;tableau!<br/>'</span><span class="syntaxkeyword">;<br />}<br />else<br />{<br />&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="syntaxstring">'Aucune&nbsp;valeur&nbsp;n\'appartient&nbsp;au&nbsp;tableau.<br/>'</span><span class="syntaxkeyword">;<br />}<br />&nbsp;</span><span class="syntaxdefault"></span>

Tu comprendras peut-être ton erreur de compréhension de la fonction ;)
 
WRInaute passionné
Bhaa j'ai beau me creuser le cerveau et je ne comprend toujours pas pourquoi ça ne fonctionne pas ainsi!
Pourquoi suis-je obligé le contenu de $texte dans le tableau $mot_interdits?

Néanmoins en effectuant un autre teste en interposant $texte et $mot_interdits la fonction tourne nickel ...j'en déduis alors que c'est une erreur de position des variables..?
 
WRInaute impliqué
in_array recherche un élément dans une liste d'élément. Il ne recherche pas une liste d'élément dans un élément.
 
Discussions similaires
Haut