2013-02-07 44 views
0

我正在創建一個小型PHP測驗,並且我有一個Multidimensional Array設置(其中包含我的問題標題和問題),然後使用rand_array選擇其中一個數組並將其顯示在我的頁面中。在顯示之後,我使用unset($row);將其從我的Multidimensional Array中刪除,以便相同的問題不會顯示兩次。在PHP測驗中加載下一個數組項目

有三個按鈕(三個答案),當它被點擊時,它會給用戶0,10或20分。我已經使用這個來獲得積分回:

if (isset($_POST["Answer1"])){
$points = $points + 20;
initialQuestions();
}

我跑initialQuestions();再次得到下一個問題,但是這顯然復位我的整個數組,我怎麼讓它跳到下一個問題與前一個項目從數組中刪除最終導致它是一個空白數組?

任何幫助將不勝感激。

+0

您可以顯示取消設置值的腳本嗎? – Peon

+0

什麼阻止你在會話中存儲回答的問題,然後排除它們?或者相反 - 將可能的問題存儲在會話中? –

+0

數組存儲在哪裏? – Alepac

回答

0

使用數組拼接,而不是取消設置原因vallue被清零,但關鍵仍然

0

initialQuestions()?你的數組在哪裏? 使用initialQuestions($ question_array)並返回沒有當前問題的數組;

像這樣的事情

$questions = array('your array'); 
function initialQuestions($questions) { 
//get some question 
//remove it from array 
return $questions;//return this array 
} 

然後

if (isset($_POST["Answer1"])){ $points = $points + 20; $questions = initialQuestions($questions); 

或$全球化問題陣列

function initialQuestions() { 
global $questions; 
//get some question 
//remove it from array 
} 

但是最適合我使用$ _SESSION來存儲您的$問題陣列。

+0

第一個解決方案似乎沒有在我的腳本中工作,它會加載下一個問題,但它不會從我的數組中刪除另一個問題,只有陣列第一次被刪除是問題所在。你可以在這裏看到 - http://pastebin.com/km6Zkar8。我會嘗試使用$ _SESSION來做到這一點 –

-1

你可以隨機地從all_question數組中提取一個問題,並將這個'used'問題保存到Session中,然後不管你在POST中做什麼,下一次當你提出'next'問題時從all_question中,你只要檢查它是否已經存儲在'used'Session中,如果是的話,再次拉動,如果沒有,就得到你想要的。

<?php 
session_start(); 

$all_question = array(
    //put all your question here... 
); 

//pull a question out 
$new_question = pull_question($all_question); 

//save this question to the 'used' session 
$_SESSION['used_question'][] = $new_question; 

?> 
相關問題