我目前正在使用PHP检索CSV文件,并通过以下方法以表格格式显示:
<?php
if (($file_handle = fopen("data.csv", "r")) !== false) {
$str = '';
$str .= '<table>';
while (($data = fgetcsv($file_handle, 1024, ",")) !== false) {
$str .= '<tr>';
foreach ($data as $key => &$value) {
$str .= "<td valign='top'>$value</td>";
}
$str .= '</tr>';
$str .= '<tr><td><br></td></tr>';
}
fclose($file_handle);
$str .= '</table>';
echo $str;
}
?>
这很好,很好,很直接。但是,我想只在该行包含特定值时显示CSV文件中的行。我一直试图了解如何做到这一点,但我对CSV操作不够熟悉,无法正常工作。有人能指出我正确的方向吗?
举个例子,假设我的CSV文件结构如下
Timestamp, F, staff, kitchen, 34
Timestamp, P, staff, floor, 32
Timestamp, F, staff, floor, 33
Timestamp, F, contractor, kitchen, 65
Timestamp, P, staff, kitchen, 34
如果我只想输出最终值为的行,例如34,我该怎么做?
答案 0 :(得分:0)
您可以使用简单的continue语句跳过行。例如
<?php
if (($file_handle = fopen("data.csv", "r")) !== false) {
$str = '';
$row = 0;
$str .= '<table>';
while (($data = fgetcsv($file_handle, 1024, ",")) !== false) {
$row++;
if ($data[4] != '34' && $row > 1) continue; // *** skip rows without '34' ***
$str .= '<tr>';
foreach ($data as $key => &$value) {
$str .= "<td valign='top'>$value</td>";
}
$str .= '</tr>';
$str .= '<tr><td><br></td></tr>';
}
fclose($file_handle);
$str .= '</table>';
echo $str;
}
?>