2015-05-12 102 views
0

我有這樣的代碼存儲「學生」對象$ _SESSION:

if(isset($_POST["name"]) && isset($_POST["note"]) && isset($_POST["year"])) 
    { 
     $nom = $_POST["name"]; 
     $note = $_POST["note"]; 
     $session = $_POST["year"]; 

      $vec = array("name" => $name, "note" => $note, "year" => $year); 
      $_SESSION["students"][] = $vec; 
      echo "The student has been added.<br><br>"; 
    } 

然後,我有這樣的代碼在另一個頁面:

function calculateAverage() 
    { 
     $av = 0; 
     $count = 0; 
     foreach($_SESSION['students'] as $student) 
     { 
      $av = $av + $student["note"]; 
      $count = $count + 1; 
     } 
     return $av/$count; 
    } 

    function bestNote() 
    { 
     //$best = array_search(max()) 
     return $best; 
    } 

    function worstNote() 
    { 
     $worst = min(array_search(["note"], $_SESSION['students'])); 
     return $worst; 
    } 


    if(isset($_SESSION['students'])) 
    { 
     echo "The average note of the group is = " . calculateAverage() . "\n"; 
     echo "The one with the best note is " . bestNote()["name"] . " is " . hauteNote()["note"] . " points.\n"; 
     echo "The one with the worst note is " . worstNote()["name"] . " with " . basseNote()["note"] . " points.\n"; 
    } 

正如你所看到的,還沒有完成。我想要做的是能夠獲取存儲在$ _SESSION [「學生」中的學生的筆記。我怎樣才能做到這一點?

感謝您的回答。

+0

'的foreach($ _ SESSION [ '學生']爲$ item){echo $ item ['name']; ''? – Darren

回答

0

可以嵌套數組中訪問所存儲的值,象這樣:

$studentNote = $_SESSION["students"][YourActiveStudent]["note"]; 

但是,目前不添加但覆蓋數據。使用array_push()將數據添加到數組(您的學生)。

並增加了學生對數組時,請務必給它一個名稱,使之聯想,所以你可以簡單地「叫學生」:

$_SESSION["students"][$nom] = $vec; 

這樣,如果$ NOM是「馬克斯」,你可以說

$_SESSION["students"]["Max"]["note"] 

獲得最大的說明(順便說一句,我認爲你是在談論等級或標記,而不是筆記嗎?)

+0

'$ _SESSION'是一個超級全局變量,無論如何......你永遠不需要像這樣指定它。你需要確保他開始會話,如果他想訪問其中包含的數據。 (用'session_start()') – Darren

+0

哦,我以爲我遇到過它沒有超級全球化的配置(因此我的措辭「取決於你的情況」)...我現在刪除它。 –

相關問題