php - 我在 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
.
请帮我弄清楚我做错了什么。
解决方案
您可以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);
推荐阅读
- java - CMD 上不显示 JAVA 版本
- mininet - 如何在 mininet 上添加控制器
- spring-boot - Spring @Transactional annonation 不起作用
- log4j - 具有属性的 log4j 1.2.17 中的最大日志文件大小
- python - 在 python 中模拟编码会话
- bash - 在 target-directory(ies)/ 中的所有文件上搜索 input.file 中的所有字符串并打印 (Bash)
- python - 如何在列表中附加元素并将其写入 JSON?
- windows - Mongo shell“此应用程序无法在您的电脑上运行,要为您的电脑寻找版本,请与软件发行商联系。”
- symfony - 将 Sylius 从 1.1.6 升级到 1.2.9 后 Composer 内存不足
- solr - 如何让 Solr 控制台输出用于执行操作的命令?