如何从csv中的行数中计算值,并找出最后一行以删除特殊变量


How to count value from the number of rows in csv and find out the last row to remove special variable

我正试图从csv文件中的行数中找出计数值:这是php脚本,

<?php
$str=null;
 if (($handle = fopen("rahul.csv", "r")) !== FALSE) {
            $i=0;
                while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                    $str.= "[".$i.",".$data[1]."]," ;
                    $i++;
                }
                fclose($handle);
}
echo "$str";
?>

这是csv文件:

18-Jul-14   99.75   99.98
19-Jul-14   99.77   99.97
20-Jul-14   99.78   99.99
21-Jul-14   99.84   99.99
22-Jul-14   99.82   99.99
23-Jul-14   99.82   99.98
24-Jul-14   99.76   99.98
25-Jul-14   99.78   99.98
26-Jul-14   99.8    99.99
27-Jul-14   99.65   99.98
28-Jul-14   99.94   99.99
29-Jul-14   99.8    99.95
31-Jul-14   99.78   99.98
1-Aug-14    99.82   99.99
2-Aug-14    99.82   99.99
3-Aug-14    99.78   99.99
4-Aug-14    99.73   99.99
5-Aug-14    99.84   99.99
6-Aug-14    99.77   99.99
7-Aug-14    99.83   99.99
8-Aug-14    99.83   99.98
9-Aug-14    99.72   99.91
10-Aug-14   99.8    99.99
11-Aug-14   99.82   99.99
12-Aug-14   99.83   99.98
13-Aug-14   99.89   99.98
14-Aug-14   99.87   99.99
15-Aug-14   99.84   99.99
16-Aug-14   99.86   99.99
17-Aug-14   99.86   99.98

当我输出这个csv文件时,我得到了以下输出:

[0,99.75],[1,99.77],[2,99.78],[3,99.84],[4,99.82],[5,99.82],[6,99.76],[7,99.78],[8,99.8],[9,99.65],[10,99.94],[11,99.8],[12,99.78],[13,99.82],[14,99.82],[15,99.78],[16,99.73],[17,99.84],[18,99.77],[19,99.83],[20,99.83],[21,99.72],[22,99.8],[23,99.82],[24,99.83],[25,99.89],[26,99.87],[27,99.84],[28,99.86],[29,99.86],

现在,我试图通过计数并删除最后一个值的逗号来删除最后一值的逗号(,)。

我正试图得到这样的输出:

[0,99.75],[1,99.77],[2,99.78],[3,99.84],[4,99.82],[5,99.82],[6,99.76],[7,99.78],[8,99.8],[9,99.65],[10,99.94],[11,99.8],[12,99.78],[13,99.82],[14,99.82],[15,99.78],[16,99.73],[17,99.84],[18,99.77],[19,99.83],[20,99.83],[21,99.72],[22,99.8],[23,99.82],[24,99.83],[25,99.89],[26,99.87],[27,99.84],[28,99.86],[29,99.86]

您可以使用删除最后一个字符

$str = substr($str, 0, strlen($str)-1);

但我一开始会用另一种方式。将所有字符串放在一个数组中,然后用implode将它们连接在一起。

或者,由于您的结果看起来就像JSON,您可以使用json_encode

$arr = array();
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $arr[] = array($i, $data[1]);
    $i++;
}
$str = json_encode($arr);

您可以使用将其删除

rtrim($str, ",");

trim($str, ",");

首先将结果分解为逗号,然后将分解结果分解为逗点。最后一个逗号应该删除。

$result = explode(",", $str);
$result = implode(",", $result);