PHP with associative array

时间:2018-03-25 18:43:15

标签: php

   <?php
      if(isset($_GET["groupe"]) && isset($_GET["examen"]))
      {
            require_once("fonctionstp.php");
            $groupeNumber =  $_GET["groupe"];
            $examenNumber = $_GET["examen"];

            $groupe = "";
            if($groupeNumber == 0){
                $groupe = $NotesGroupe1;
            }else if ($groupeNumber == 1){
                $groupe = $Notesgroupe2;    
            }

            if($groupe != ""){  
                $keys = array_keys($groupe);

                for($i = 0; $i < count($groupe); $i++){
                    $student= $groupe[$keys[$i]];
                    $prenom = $student[0];
                    $nom = $student[1];
                    $noteExam = $student[$examenNumber + 4];
                    echo $prenom. " " .$nom. " a eu " .$noteExam . "a 
                    l'examen.".$examenNumber + 1 . " !";
                }
            }  
       }        
   ?>

I have a simple form html that says, with one select that let you ( choose group 1 or 2. ) after that you have an another select that let you choose :

the first gradescore, the second grade score and the third grade score.

It means that I need to show to the user, the first and second name of the person in the Group 1 or 2 (Depend which they chosed) and one of the scores they took. I need to show every person in that group.

I have an another php files that is associative array

<?php
$NotesGroupe1 = array(
 "HARG200181" => array("Guillaume", "Harvey", "M", 36, 90, 70, 76),
 "CHAM010283" => array("Marc-André", "Charpentier", "M", 34, 80, 73, 96),
 "TREV290991" => array("Valérie", "Tremblay", "F", 26, 70, 71, 69),
 "PELL180584" => array("Laurence", "Pelletier", "F", 30, 65, 89, 76),
 "MALF110194" => array("Francis", "Maltais", "M", 20, 61, 50, 59),
 "GAUM220654" => array("Martine", "Gauthier", "F", 60, 65, 40, 76),
);
$NotesGroupe2 = array(
 "GIRM230383" => array("Marc-Olivier", "Girard", "M", 31, 75, 85, 56),
 "TREM300878" => array("Michel", "Tremblay", "M", 36, 50, 50, 55),
 "POID250468" => array("Diane", "Poitras", "F", 46, 61, 75, 59),
 "LEML180586" => array("Laurence", "Lemieux", "F", 31, 80, 89, 100),
 "VANL130395" => array("Jeff", "Van Cleef", "M", 19, 61, 68, 33)
);  

?>

The problem is when I test it on my own. When I submit it gives me 1 !1 !1 !1 !1 !1 ! I'm missing something.

1 个答案:

答案 0 :(得分:2)

You have a "A non-numeric value encountered", because you are missing to wrap your addition with brackets:

for($i = 0; $i < count($groupe); $i++){
    $student= $groupe[$keys[$i]];
    $prenom = $student[0];
    $nom = $student[1];
    $noteExam = $student[$examenNumber + 4];
    echo $prenom. " " .$nom. " a eu " .$noteExam . "a 
    l'examen." . ($examenNumber + 1) . " !";
}

Because:

$prenom. " " .$nom. " a eu " .$noteExam . "a l'examen." . $examenNumber

is a string, then, by adding + 1, you're trying to add a string with a number. Finally, you add " !", so it's converted to a string. So you get:

1 !