[英]How to filter on a word in a specific column of a csv file with PHP
我正在嘗試僅顯示特定列中包含特定單詞的行。 基本上,我只想顯示“顯示”列中具有“是”的行。
First_Name, Last_Name, Display
Kevin, Smith, yes
Jack, White, yes
Joe, Schmo, no
我一直在嘗試從其他答案和php.net用fgetcsv和str_getcsv進行各種操作,但到目前為止沒有任何效果。
它什么也沒做,但這是我當前的代碼:
$csv = fopen('file.csv', 'r');
$array = fgetcsv($csv);
foreach ($array as $result) {
if ($array[2] == "yes") {
print ($result);
}
}
讓我們看一下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);
您應該使用數據表。 https://datatables.net/examples/basic_init/zero_configuration.html
這就是我處理文本文件的方式。 但是要小心,在有大量數據(> 10000行)的情況下,您應該對deferRender選項感到困惑。 https://datatables.net/reference/option/deferRender <-需要JSON數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.