0

Good Day All 我有一个 csv 文件,我想从中读取并计算总时间。我唯一需要的时间是最后一列时间的差异超过 2 分钟。该文件看起来像:

L1,is,2.0,mins,LATE,for,Arrive,at,shop,18:07:46
L1,is,4.0,mins,LATE,for,Arrive,at,shop,18:09:46
L1,is,6.0,mins,LATE,for,Arrive,at,shop,18:11:46
L1,is,8.0,mins,LATE,for,Arrive,at,shop,18:13:46
L1,is,10.0,mins,LATE,for,Arrive,at,shop,18:15:46
L1,is,2.0,mins,LATE,for,Arrive,at,shop,18:19:49
L1,is,4.0,mins,LATE,for,Arrive,at,shop,18:21:49
L1,is,6.0,mins,LATE,for,Arrive,at,shop,18:23:49
L1,is,8.0,mins,LATE,for,Arrive,at,shop,18:25:49
L1,is,10.0,mins,LATE,for,Arrive,at,shop,18:27:49
L1,is,16.2,mins,LATE,for,Arrive,at,shop,18:34:02
L1,is,18.2,mins,LATE,for,Arrive,at,shop,18:36:02
L1,is,20.2,mins,LATE,for,Arrive,at,shop,18:38:02
L1,is,2.0,mins,LATE,for,Arrive,at,bridge,21:45:26
L1,is,4.0,mins,LATE,for,Arrive,at,bridge,21:47:26
L1,is,6.0,mins,LATE,for,Arrive,at,bridge,21:49:26

编辑:将 csv 文件示例更改为实际文件。我可以将所有值放入一个数组中,但如果最后一列增量中的时间比第一列增量超过 2 分钟,我只需要该值。所以通常我希望看到:

L1 is late 30.2 min at shop and 6 min late at bridge.

任何帮助将不胜感激谢谢

4

1 回答 1

0

首先,我以为您想计算总时间,并从中得出答案:)

根据某个列值在增量生成的 CSV 中查找最后一次(或其他时间):

$locations=array();
if (($handle = fopen('your-csv-file.csv', "r")) !== false) {
    while (($data = fgetcsv($handle, 1000, ",")) !== false) {
        $location=$data[count($data)-2];
        $time=$data[count($data)-1];
        $locations[$location]=$time;
    }
    fclose($handle);
}

$locations现在保存 CSV 中存在的所有位置,以及最后一次出现的值,

echo '<pre>';
print_r($locations);
echo '</pre>';

输出

Array
(
    [shop] => 09:02:00
    [bridge] => 09:06:00
)
于 2013-10-04T09:23:04.020 回答