2016-04-03 77 views
0

我有這樣的代碼:

// Values of drop-down lists (cmbPosition) 
$studPosition = array(); 
$i = 0; 
foreach ($_SESSION['arrayNamePosition'] as $value) { 
    $studPosition[$i] = $_GET[$value]; 
    $i++; 
// Calculates the points for each student in the event 
    $points = ($_SESSION['noStudents']+1) - $_GET[$value]; 
    echo $points; 
    $_SESSION['points'] = $points; 
} 

上面的代碼通過$_SESSION['arrayNamePosition']其包含數組環路。每一件事情都有效,但$_SESSION['points'] = $points;是問題所在(這是$ _SESSION變量,其中包含$points)。

當我在當前的PHP形式回聲$points,它輸出:583276

但是,當我echo $_SESSION['points']在不同的PHP的形式的while循環中,只輸出存儲在$ echo $_SESSION['points']點,這是6的最後一個元素。

我該如何解決這個問題,以便echo $_SESSION['points']以不同的php形式輸出$points的所有值。

注意:我也把echo $_SESSION['points']放在for循環中,但它仍然輸出存儲在$ points中的最後一個值。例如輸出:666666

在此先感謝。

回答

3

這是因爲$ _SESSION ['points']本身不是數組。您應該將您的行更改爲:

$_SESSION['points'][] = $points; 
+0

所以,當我輸出'$ _SESSION [「點」]'我只是'回聲$ _SESSION [「點」]'或者使用一個循環輸出值在583276其他形式? – SubZero

+0

如果僅用於調試目的,您可以使用print_r($ _ SESSION ['points'])。 – rcpinto

0

變量點不是數組,因此它只包含上次計算的元素。將其更改爲數組,然後將每個值保存爲數組中的新元素。

0

我想你的意思是說,與echo $points;循環輸出你583276.像$_SESSION['points'],它只存儲一個值,但你每次打印的值。 我建議以下變化:

$studPosition = array(); 
$i = 0; 
$points = ''; 
foreach ($_SESSION['arrayNamePosition'] as $value) { 
    $studPosition[$i] = $_GET[$value]; 
    $i++; 
    $points = $points.(($_SESSION['noStudents']+1) - $_GET[$value]); 
} 
echo $points; 
$_SESSION['points'] = $points;