【问题标题】:Search for specific row in CSV-file with PHP and echo specific field of this row使用 PHP 在 CSV 文件中搜索特定行并回显该行的特定字段
【发布时间】:2021-06-14 12:06:12
【问题描述】:

我是新手,有一个 PHP 小问题!我有一个经常更改其内容的 CSV 文件。比方说:

PRODUCT; DESC; PRICE
32; X; 900
37; X; 1200
4; X; 82

请注意:物品的顺序可能会改变!

我现在想回显一下产品“37”的描述。

我正在尝试 fgetcsv 但只能回显整个文件:

$row = 1;
if (($handle = fopen("test.csv"; "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}

如何访问特定行的特定字段(我想使用关键字 = Product 来查找)?

感谢您对初学者的任何帮助!

【问题讨论】:

  • 你的意思是像查找产品 4,会像 $data[0] == "4"
  • 是的,我只是想回应一下例如产品 4 的描述。

标签: php csv


【解决方案1】:

要只获得一种产品,例如 37,您可以使用 if 条件:

$row = 1;
if (($handle = fopen("test.csv"; "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        if ($data[0] == '37') {
            // do something with your row
        }
    }
    fclose($handle);
}

$data[0] 是您的产品 ID,$data[1] 是您的描述,$data[2] 是价格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 2012-09-09
    • 2017-01-16
    • 2020-12-08
    • 2018-07-11
    • 2012-04-29
    相关资源
    最近更新 更多