PHP - 添加一组数字?

时间:2011-11-25 14:39:41

标签: php

我有一个返回数字数组的PHP脚本:

$fh = fopen ("./files/".$file, r);
$filedata= explode('|', fgets($fh));

  echo $filedata[5];

结果:

0.23387718200684

3.6163940429688

0.030826568603516

有没有办法让脚本将结果添加为一个数字?

3 个答案:

答案 0 :(得分:4)

echo array_sum($filedata);

我认为应该这样做。

查看here以获取更多信息。 array_sum只是汇总了数组中的所有值。

修改的 如果您的数组是整数,小数等的平面数组,则上面的示例将起作用。以下是如何总结一个二维数组,其中您想要求和的值位于索引位置5:

var $sum = 0;

foreach($filedata as $dataElement) {
    $sum += $dataElement[5];
}

echo $sum;

上面的代码假设$ filedata是一个数组的数组,每个数组在filedata中都有一个索引为5的值,可以总结一下......这更符合你的需求吗?

答案 1 :(得分:4)

您可以使用array_sum:

echo array_sum($filedata);

不工作?

可能你的情况$filedata[5]实际上包含一个带换行符和数字的字符串。在这种情况下,您需要一些额外的代码。重要的是行结尾 - 根据您的操作系统/文件,它们可能会有所不同。

$sum = 0;
$sLineEnding = "\r\n";
foreach($filedata as $data)
{
    $parts = explode($sLineEnding, $data);
    $sum += array_sum($parts);
}
echo $sum;

答案 2 :(得分:0)

正如我在你的代码中所看到的那样,你是在命令行中执行它并且你回应$ filedata [5]你得到不同的行,这是因为你没有注意'\ n'字符,所以你是什么需要的是以某种方式改变这个角色...... 有不同的方式......在这个例子中,我正在改变“\ n”为“”简单空间

$fh = fopen ("./files/".$file, r);
$filedata= explode('|', fgets($fh));

// if "\n" is not working try '\n'

// One way
echo str_replace(" ","\n",$filedata[5]);

// Another way
echo implode(" ", explode("\n", $filedata[5]));