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 :

		$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

  1. Contributeur Ambassadeur
    bonsoir, je pense qu'un if fonctionne superbement dans un while ou un for. quel est ton soucis?
    0
    1. 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
  2. Modérateur
    Bonjour,

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

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

    0
    1. Oui j'ai vite réécrit le code mais ça marche quand même pas
      0
  3. Contributeur Ambassadeur
    pourquoi pas:
    $phrase = $_POST['search'];
    		foreach (explode(" ", $phrase) as $mot)
    		{
    			if(strlen($mot) > 3)
    			{
    			echo "<p> ".$mot."<br/></p>";
    			}
    		}
    0
    1. Merci beaucoup
      0