为了账号安全,请及时绑定邮箱和手机立即绑定

如何读取文件并在php中求和该文件的数量

如何读取文件并在php中求和该文件的数量

PHP
梵蒂冈之花 2022-10-14 10:48:24
假设您有一个具有以下结构的文件:txt 格式"id,name,value1,Dan,1502,Peter,3003,Mark,4004,Victor,600"我用来读取文件的这个函数:function readAFile(){    $userfileInfo = fopen("peopleInformation.txt", "r") or die("Unable to open the file.");    //echo fread($userfileInfo, filesize("peopleInformation.txt"));    $theData = fread($userfileInfo, filesize("peopleInformation.txt"));    echo $theData;    fclose($userfileInfo);}输出:"id,name,value 1,Dan,150 2,Peter,300 3,Mark,400 4,Victor,600"我将如何分离 150、300、400、600 并在 php 中求和它们。
查看完整描述

3 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

它是一个 csv 文件,您可以用,除第一个标题行之外的最后一项来分解每一行并求和。


$lines = file($file_path);

$lines = array_map(function($v){return explode(",",$v);},array_slice($lines,1));

echo array_sum(array_column($lines,2)) . PHP_EOL;


查看完整回答
反对 回复 2022-10-14
?
烙印99

TA贡献1829条经验 获得超13个赞

尝试使用preg_match_all和 RegEx


function readAFile()

{


    $userfileInfo = fopen("peopleInformation.txt", "r") or die("Unable to open the file.");

    //echo fread($userfileInfo, filesize("peopleInformation.txt"));

    $theData = fread($userfileInfo, filesize("peopleInformation.txt"));

    echo $theData;

    preg_match_all('/\d+,.+,(\d+)/', $theData, $output);

    $sum = 0;

    foreach($output[1] as $value){

        $sum = $sum + (int) $value;

    };

    //echo "Sum :".$sum;

    fclose($userfileInfo);

}


查看完整回答
反对 回复 2022-10-14
?
慕后森

TA贡献1802条经验 获得超5个赞

您可以使用fgets函数逐行读取它。然后您可以轻松地使用explode函数将行更改为数组。数组中的最后一个索引是您想要的值。如下所示:


$theData = fopen("peopleInformation.txt", "rw"); 

fgets($theData); //skip the header.

$sum = 0;

while (! feof ($my_file)) 

  { 

   $line = fgets($theData); 

   $array_val = explode($line);

   $sum += (int)end($array_val);

  } 


查看完整回答
反对 回复 2022-10-14
  • 3 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信