我试图从投票函数中获得平均值。
<?php
$file = file("textfile.txt");
$textfil = file_get_contents("textfile.txt");
$textfill = str_split($textfil);
echo "Number of votes: " . count($textfill) . "<br>";
$sum = 0;
foreach ($textfill as $vote) {
$sum = $sum + intval($vote);
}
echo "Average: " . $sum;
?>
简单用替换(+)和(/),甚至尝试了(%)。但仍然收到错误消息。 如果有人能帮助我并告诉我我做错了什么,我会很感激。
/感谢
答案 0 :(得分:2)
旁注: 请阅读 &#34;第一个答案&#34; 下的解释下方。
如果内容如下所示,此版本将考虑文件中的任何空白行:
1
2
3
// <- blank line
旁注: 请提供您的文本文件示例。已经给出comment
这个效果。
PHP
<?php
// first line not required
// $file = file("textfile.txt");
$textfil = file_get_contents("textfile.txt");
$textfill = array_filter(array_map("trim", file("textfile.txt")), "strlen");
echo "Number of votes: " . count($textfill) . "<br>";
$sum = 0;
foreach ($textfill as $vote) {
$sum += intval($vote);
}
$avg = $sum / count($textfill);
echo "Average: " . $avg;
?>
在文本文件中使用以下内容:(因为没有给出文件内容的示例)
5
5
5
重要提示:最后一次入境后不应有回车。
产生
票数:5
平均:3
这是假的,因为文本文件中有3个条目。
应该使用以下使用相同的文本文件:
票数:3
平均值:5
这是正确的。在简单的数学中,平均值是通过添加所有数字然后除以它们的数量来完成的。
在这种情况下,它的3个数字(全部5个&#39; s)加上等于15,除以3是5。
旁注:第一行不是必需的$file = file("textfile2.txt");
<?php
// first line not required
// $file = file("textfile.txt");
$textfil = file_get_contents("textfile.txt");
$textfill = explode("\n", $textfil);
echo "Number of votes: " . count($textfill) . "<br>";
$sum = 0;
foreach ($textfill as $vote) {
$sum += intval($vote);
}
$avg = $sum / count($textfill);
echo "Average: " . $avg;
?>
<强>脚注:强>
如果平均值达到8.33333并且您希望将其四舍五入为8
,请使用:
echo "Average: " . floor($avg);
如果平均值达到8.33333且希望它为9
,您可以使用:
echo "Average: " . ceil($avg);
答案 1 :(得分:0)
您可能会混合使用无法分割的内容,例如文本等。我不知道您的文本文件是什么样的。 intval可能有数组问题。你可以尝试:
foreach ($textfill as $vote) {
if(is_int($vote) {
$sum += $vote;
}
}
echo "Average: " . $sum;
答案 2 :(得分:0)
低年级学生math说:
foreach ($textfill as $vote) {
$sum += intval($vote);
}
$avg = $sum / count($textfill);
答案 3 :(得分:0)
平均值的计算方法是将总和除以投票数。此行将打印平均值:
echo "Average: " . $sum/count($textfill);