我想顯示從PHP查詢的HTML頁面上的表格。這三個陣列將始終具有相同的長度:從PHP的SQL查詢操作數組來顯示它在HTML?
while ($row = sqlsrv_fetch_array($query))
{
$SUBJECT[] = "$row[SUBJECT]";
$SECTION[] = "$row[SECTION]";
$SCORE[] = "$row[SCORE]";
}
// I know this part is confusing. I will elaborate why i am doing this later
$count = [];
$total = [];
$perc = [];
for($i = 0, $length = count($SUBJECT); $i < $length; $i++)
{
if(!isset($count[$SECTION[$i]][$SUBJECT[$i]]))
{
$count[$SECTION[$i]][$SUBJECT[$i]] = 0;
$total[$SECTION[$i]][$SUBJECT[$i]] = 0;
}
$count[$SECTION[$i]][$SUBJECT[$i]]++;
$total[$SECTION[$i]][$SUBJECT[$i]] += $SCORE[$i];
$perc[$SECTION[$i]][$SUBJECT[$i]] = round($total[$SECTION[$i]][$SUBJECT[$i]]/$count[$SECTION[$i]][$SUBJECT[$i]],2);
}
echo "<table border='1' cellpadding='5' cellspacing='0' style='border-collapse:collapse;'>";
echo "<tr><td></td><td>" . implode("</td><td>", array_unique($SUBJECT)) . "</td></tr>";
foreach(array_unique($SECTION) as $v)
{
echo "<tr><td>$v</td>";
foreach(array_unique($SUBJECT) as $key)
echo "<td>" . (isset($perc[$v][$key]) ? $perc[$v][$key] : "0") . "</td>";
echo "</tr>";
}
echo "</table>";
這對我的HTML表格是這樣的(此表中的值已經平均)輸出像這樣的表:
Math Science English History PE
Section A 90 50 40 60 100
Section B 60 50 70 70 90
Section C 60 50 70 20 80
這是我需要什麼幫助: 我想在顯示所有主題的平均值的部分下創建一個整體行。因此,這將是這樣的:
Overall 70 50 60 50 90
我知道後我會像這樣開頭的foreach(array_unique($SECTION) as $v)
:
}
echo "<tr><td>Overall</td>";
echo "<td>". ."</td>";
echo "</tr>";
echo "</table>;
現在我想我需要重新安排從一開始就不同的陣列:
$SUBJECT[] = ('MATH', 'SCIENCE', 'HISTORY', 'MATH', 'PE'.....)
$SECTION[] = ('A', 'C', 'B', 'B', 'A'...)
$SCORE[] = (50, 80, 70, 80, 60 ...)
所以這一小塊代碼的目的是創建這個表,其中有主題和部分,並告訴平均分數(本質上每個學生sql都有,所以我平均分因爲我可以顯示每個部分和每個主題的數據)。
那麼如何爲主題和部分創建一個整體行?
UPDATE: 我才意識到我比它需要這個困難:
我想我的問題是我有兩個數組:
$SUBJECT[] = ('MATH', 'SCIENCE', 'HISTORY', 'SCIENCE', 'PE', 'MATH', 'PE', 'PE');
$SCORE[] = (50, 100, 70, 60, 90, 70, 80, 100);
我想創建一個新的陣列,顯示給我這個平均: 所以我打電話:$newarray['MATH'] = 60; $newarray['SCIENCE'] = 80; $newarray['PE'] = 90; etc.
我看着那個。由於無法在數組中使用相同的密鑰,因此無法使用它。它只會顯示最近的價值。 – USER420