在csv文件中查找最后一次出现的字符串,并参考文件中的列

时间:2013-10-04 07:27:21

标签: php csv

美好的一天 我有一个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.

任何帮助将不胜感激 谢谢

1 个答案:

答案 0 :(得分: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
)