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

假设您有一个具有以下结构的文件:txt 格式


"id,name,value

1,Dan,150

2,Peter,300

3,Mark,400

4,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 中求和它们。


梵蒂冈之花
浏览 75回答 3
3回答

qq_笑_17

它是一个 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;

烙印99

尝试使用preg_match_all和 RegExfunction 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);}

慕后森

您可以使用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);  } 
打开App,查看更多内容
随时随地看视频慕课网APP