PHP-如何使用从文本文件中获得的数字进行计算?

时间:2018-08-12 13:43:47

标签: php sum int text-files readfile

所以我有一个任务,我应该在php中读取一个文本文件,其中包含学生ID及其成绩,并用竖线分隔。看起来像这样:

12345|4|2|1|0|4 
45678|1|2|3|4|4 
78901|5|5|5|5|4 

程序应该打印出文件中的学生人数,我通过简单地回显行数就可以做到这一点。但是,我也应该打印每个学生的成绩总和,而我根本找不到解决方法。是否按顺序或类似方式获得字符?我已经为此苦苦挣扎了一天,但我所得到的只是这样:

<?php 

$file="exam.txt";
$linecount = 0;
$handle = fopen($file, "r");
while(!feof($handle)){
  $line = fgets($handle);
  $linecount++;
}


echo "total_students was $linecount:";
$homepage = file_get_contents('exam.txt');
echo $homepage;


?>

此代码仅打印页面和行数,仅此而已。

1 个答案:

答案 0 :(得分:0)

因此,在向正确的方向指导之后,我设法提出了解决方案!

<?php 

$file="exam.txt";
$linecount = 0;
$handle = fopen($file, "r");
while(!feof($handle)){
  $line = fgets($handle);
  $linecount++;
}


echo "total_students was $linecount:\n";


$lines = file('exam.txt');
$sum = 0 ;

foreach ($lines as $line){
$var = explode("|", $line);
$sum = $var[1]+$var[2]+$var[3]+$var[4]+$var[5];
$all += $sum;
echo "$var[0]: $sum points\n";
}

$average = $all / $linecount;
echo "The average score was $average points."

?>

我将每行分解为一个数组,除以“ |”符号,然后从数组的[0]中打印出学生ID,并对其余的求和。之后,我将总和相加,得出平均值。