Un if dans un while

Fab121205 67 Messages postés dimanche 26 juillet 2015Date d'inscription 13 février 2018 Dernière intervention - 13 févr. 2018 à 17:41 - Dernière réponse :  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
Afficher la suite 

7 réponses

Répondre au sujet
yg_be 4603 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 14 février 2018 Dernière intervention - 13 févr. 2018 à 19:36
0
Utile
1
bonsoir, je pense qu'un if fonctionne superbement dans un while ou un for. quel est ton soucis?
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.
Commenter la réponse de yg_be
jordane45 19962 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 14 février 2018 Dernière intervention - 13 févr. 2018 à 20:38
0
Utile
2
Bonjour,

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

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

Oui j'ai vite réécrit le code mais ça marche quand même pas
jordane45 19962 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 14 février 2018 Dernière intervention - 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 : http://www.commentcamarche.net/faq/48399-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... )
Commenter la réponse de jordane45
yg_be 4603 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 14 février 2018 Dernière intervention - 13 févr. 2018 à 22:43
0
Utile
1
pourquoi pas:
$phrase = $_POST['search'];
		foreach (explode(" ", $phrase) as $mot)
		{
			if(strlen($mot) > 3)
			{
			echo "<p> ".$mot."<br/></p>";
			}
		}
Commenter la réponse de yg_be