用PHP划分

时间:2014-03-25 14:27:43

标签: php

我试图从投票函数中获得平均值。

<?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;
?>

简单用替换(+)和(/),甚至尝试了(%)。但仍然收到错误消息。 如果有人能帮助我并告诉我我做错了什么,我会很感激。

/感谢

4 个答案:

答案 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个条目。

应该使用

explode(),而不是str_split()

以下使用相同的文本文件:

票数: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);