php создает среднее количество очков для отображения

Новичок в php, пытающийся быстро решить проблему, прежде чем углубиться в язык, у меня есть следующий код, но я хочу, чтобы он отображал только СРЕДНИЙ из всех полученных баллов.

<p>Average Score</p>
<?php$a = new NewQuizScore;
$scores = $a->getScores($_SESSION['username']);

foreach ($scores as $score) {
echo ("<tr>");
echo ("<td>".$score[0]. "</td> ");
echo ("<td>".$score[1]. "</td> ");
echo ("</tr>");
}?>

В настоящее время он отображает сами оценки, как показано ниже.

1-Python Basics 100 1-Python Output 100 2-Python Output 90 3-Variables and User Input 100

Кто-нибудь сможет опубликовать наиболее эффективный способ создания переменной для хранения среднего и отображения ее на экране. В приведенном выше примере получилось бы среднее значение баллов 100, 100, 90 и 100.

Я попытался поиграться с кодом, чтобы удалить «», но это привело к тому, что страница вообще не загружалась.

ОБНОВИТЬ:
Используя ответ ниже, я использовал ниже, но среднее значение отображается как: 101,25, а не 97,5

<p>Average Score</p>
<?php
$avg = 0;
foreach ($scores as $score) {
$avg += array_sum($score);
}
$avg /= count($scores);
echo "<tr> <td>$avg</td></tr>"?>
<p></br></br></br></br></p>

0

Решение

Вы можете использовать array_sum, если ваш массив партитур был одномерным, например Массив (30, «Вопрос1»):

$average = array_sum($scores)/(count($scores)/2);

Так как это не так, вы должны сделать это в цикле

$avg = 0;
foreach ($scores as $score) {
$avg += array_sum($score);
}
$avg /= count($scores);
0

Другие решения

Лично мне нравится использовать array_reduce так вот пример, использующий это:

 <p>Average Score</p>
<?php
$a = new NewQuizScore;
$scores = $a->getScores($_SESSION['username']);
$average = array_reduce($scores, function ($carry, $value) use ($scores) {
return $carry + $value/count($scores);
}, 0.0);

echo ("<tr>");
echo ("<td>".$average. "</td> ");
echo ("</tr>");?>

Это будет проходить через массив и агрегировать значение $value/count($scores) для каждого значения в массиве.

0

для отображения среднего вы пытаетесь это

$total=0;
foreach ($scores as $score) {
$total=$total+$score;
}
$average= ($total/sizeof($scores));
echo $average;

также вы можете попробовать это

$array = array(1, 7, 9, 3, 20, 12, 2, 9);

$average = array_sum($array) / count($array);

echo $average;

ты можешь проверить выход

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector