Boucle et Tableau PHP

Petit nouveau ! | 2 Messages

28 mai 2019, 12:29

Bonjour, je suis débutant depuis peu en PHP je me forme en autodidacte et je fais aussi quelques exercices de temps en temps et la je suis bloqué sur un ou je doit afficher la moyenne "d'élève" si elle est égal ou supérieur à 10 et ensuite afficher les prénom qui on en dessous de la moyenne .
Je sais que c'est un exercice rependu et que ça peut paraître facile mais j'y arrive vraiment pas après des heures d'essai..

Mon code:

Code : Tout sélectionner

<?php $tab = array('Tom' => 2, 'John' => 7, 'Eric' => 11, 'Dale' => 14); foreach($tab ) if () { echo ""; } { echo ""; } } ?>
Merci de votre aide bonne journée.

Mammouth du PHP | 2703 Messages

28 mai 2019, 12:33

la réponse est dans la doc :
https://www.php.net/manual/fr/control-s ... oreach.php
* exemple foreach 3 : la clé et la valeur */

$a = array(
"un" => 1,
"deux" => 2,
"trois" => 3,
"dix-sept" => 17
);

foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}

Avatar du membre
Mammouth du PHP | 1609 Messages

28 mai 2019, 12:44

Salut déjà ton code comme ça tu as 3 bonnes grosses erreurs de syntaxe dedans.
foreach ($tab) juste comme ça ça n'existe pas. C'est foreach ($tab as $element) ou foreach ($tab as $key => $element)
Ensuite normalement tu dois mettre le code de la boucle entre accolades foreach ($tab as $key => $element) { /* les instructions à exécuter dans la boucle */ }, elles peuvent être facultatives si tu as juste une instruction dans la boucle, mais à ce compte la il ne faut pas avoir l'accolade fermante de la fin...
Enfin tu fais un if () {} {} il manque peut être le else ? if (/* condition */) { /* instructions si vrai */ } else { /* instruction si false */ }
Développeur web depuis + de 20 ans

Petit nouveau ! | 2 Messages

28 mai 2019, 22:12

Salut déjà ton code comme ça tu as 3 bonnes grosses erreurs de syntaxe dedans.
foreach ($tab) juste comme ça ça n'existe pas. C'est foreach ($tab as $element) ou foreach ($tab as $key => $element)
Ensuite normalement tu dois mettre le code de la boucle entre accolades foreach ($tab as $key => $element) { /* les instructions à exécuter dans la boucle */ }, elles peuvent être facultatives si tu as juste une instruction dans la boucle, mais à ce compte la il ne faut pas avoir l'accolade fermante de la fin...
Enfin tu fais un if () {} {} il manque peut être le else ? if (/* condition */) { /* instructions si vrai */ } else { /* instruction si false */ }
Bonsoir, merci de votre aide vraiment merci !
J'ai du cou^p regardé quelquse tutos pour bien comprendre en plus et j'en suis arrivé à ce code

Code : Tout sélectionner

<?php $tab = array('Tom' => 2, 'John' => 7, 'Eric' => 11, 'Dale' => 14); foreach ($tab as $prenom => $age){ if ($age >= 10){ { echo ''. $prenom .'a une note au dessus de la moyenne'; } else { echo ''. $prenom . 'le prénom a une note en dessous de la moyenne'; } } ?>
Mais PHP me dit que le 'else' n'est pas bon je ne comprend pas pourquoi..?
Merci bonne soirée.

Avatar du membre
Mammouth du PHP | 1609 Messages

29 mai 2019, 11:28

Tu t'es un peu mélangé avec les accolades :
<?php  
$tab = array('Tom' => 2, 'John' => 7, 'Eric' => 11, 'Dale' => 14);

foreach ($tab as $prenom => $age)
{
  if ($age >= 10) 
  {
    echo ''.$prenom.'a une note au dessus de la moyenne';
  } 
  else 
  {
    echo ''.$prenom.'le prénom a une note en dessous de la moyenne';
  }
}
Développeur web depuis + de 20 ans