Un if dans un while

Fermé
Fab121205 Messages postés 81 Date d'inscription dimanche 26 juillet 2015 Statut Membre Dernière intervention 20 mars 2022 - 13 févr. 2018 à 17:41
 Fab1205 - 14 févr. 2018 à 07:34
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 :

		$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

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
13 févr. 2018 à 19:36
bonsoir, je pense qu'un if fonctionne superbement dans un while ou un for. quel est ton soucis?
0
Essaie un petit teste et tu verras que ca ne fonctionne pas j'ai cherché et en effet. L'erreur est qu'il y a un { dans le while ce qui est Interdit.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
13 févr. 2018 à 20:38
Bonjour,

erreur de parenthèse...
if(strlen($mots[$x] > 3))

A remplacer par
if(strlen($mots[$x]) > 3)

0
Oui j'ai vite réécrit le code mais ça marche quand même pas
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
13 févr. 2018 à 20:48
Fais 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... )
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
13 févr. 2018 à 22:43
pourquoi pas:
$phrase = $_POST['search'];
		foreach (explode(" ", $phrase) as $mot)
		{
			if(strlen($mot) > 3)
			{
			echo "<p> ".$mot."<br/></p>";
			}
		}
0
Merci beaucoup
0