Un if dans un while
Bonjour,
je sais que mettre un if dans un while ne fonctionne pas mais je ne vois pas comment je pourrais faire pour contourner ce problème. J'aimerais écrire les mots du'une phrase que l'utilisateur écrit mais seulement ceux qui ont plus de 3 caractères. Mon code :
Merci Fab1205
je sais que mettre un if dans un while ne fonctionne pas mais je ne vois pas comment je pourrais faire pour contourner ce problème. J'aimerais écrire les mots du'une phrase que l'utilisateur écrit mais seulement ceux qui ont plus de 3 caractères. Mon code :
$phrase = $_POST['search'];
$mots = explode(" ", $phrase);
for($x = 0; $x < str_word_count($phrase); $x++)
{
if(strlen($mots[$x] > 3))
{
echo "<p> ".$mots[$x]."<br/></p>";
}
else
{
}
}
Merci Fab1205
3 réponses
-
Contributeur Ambassadeurbonsoir, je pense qu'un if fonctionne superbement dans un while ou un for. quel est ton soucis?
-
ModérateurBonjour,
erreur de parenthèse...if(strlen($mots[$x] > 3))
A remplacer parif(strlen($mots[$x]) > 3)
-
-
ModérateurFais donc un print_r($mots); et montres nous ce que ça donne...
Et explique nous en détail ce qui, selon toi, ne fonctionne pas (le résultat obtenu vs le resultat attendu. )
Et file regarder ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
(activation des erreurs php, récupération "propre" des variables AVANT de les utiliser, débugage de son code...etc... )
-
-
Contributeur Ambassadeurpourquoi pas:
$phrase = $_POST['search']; foreach (explode(" ", $phrase) as $mot) { if(strlen($mot) > 3) { echo "<p> ".$mot."<br/></p>"; } }