如何使用PHP过滤csv文件的特定列中的单词

时间:2016-12-02 13:26:33

标签: php csv filter fgetcsv

我正在尝试仅显示特定列中包含特定单词的行。基本上我只想在显示列中显示“是”的行。

First_Name, Last_Name, Display
Kevin,      Smith,     yes
Jack,       White,     yes
Joe,        Schmo,     no

我一直在尝试使用fgetcsv& amp;来自其他答案和来自php.net的str_getcsv但到目前为止没有任何工作。

它没有做任何事情,但这是我目前的代码:

$csv  = fopen('file.csv', 'r');

$array = fgetcsv($csv);

foreach ($array as $result) {
    if ($array[2] == "yes") {
        print ($result);
     }
}

2 个答案:

答案 0 :(得分:0)

让我们看看the documentation for fgetcsv()

  

从文件指针获取行并解析CSV字段

fgetcsv读取单行,而不是整个文件。你可以通过将它放在while循环中来保持阅读行,直到你到达文件的末尾,例如。

<?php

$csv  = fopen('file.csv', 'r');

// Keep looping as long as we get a new $row
while ($row = fgetcsv($csv)) {
    if ($row[2] == "yes") {

        // We can't just echo $row because it's an array
        //
        // Instead, let's join the fields with a comma
        echo implode(',', $row);
        echo "\n";
    }
}

// Don't forget to close the file!
fclose($csv);

答案 1 :(得分:0)

您应该使用数据表。 https://datatables.net/examples/basic_init/zero_configuration.html

这就是我处理文本文件的方式。但要小心,对于大量数据(> 10000行),你应该在deferRender选项中使用loog。 https://datatables.net/reference/option/deferRender&lt; - 需要JSON数据。