首页 > 解决方案 > 我在 php 代码中得到错误的结果,我必须从文件中返回所有数字的总和

问题描述

我必须编写一个函数来返回文件中所有数字的总和。

文本文件是numbers.txt

1

1

2

3

5

8

13

21

我写的代码是:

function sumFromFileInput($fileName) {
    $total = 0;
    $file = fopen("numbers.txt", "r");
    while ($number = fgets($file)) {
        $total += $number;
    }
    fclose($file);
    return $total;
    
}

输出应该是54,而我的输出是124712203354.

请帮我弄清楚我做错了什么。

标签: phpfilesum

解决方案


您可以file()用于此目的并简化您的代码:

$trimmed = file('<provide file path here>', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$sum = array_sum($trimmed);
echo $sum;

如果您将值作为字符串添加到文件中,则需要先将它们转换为整数。

在行前添加以下array_sum()行:

$trimmed = array_map('intval', $trimmed);

推荐阅读