如何逐行显示 PHP 中具有特定结构的 csv 文件?

How to display line by line a csv file in PHP with a particular structure?

我有这段代码可以读取 csv 文件并以这种形式显示它:

REFERENCE;COLOR;QUANTITY;TURNOVER;SELL TROUGH;COMMENT 
GJK0C9;8952;3;90;3%;Pack S   
GJKCS4;399;2;19;10%;Windows    
GSIJS5;9224;18;128;12%;New co   
BBBOF1;90;17;116;13%;In sales    
...

首先是 header,然后是所有行。

我想这样显示:

REFERENCE : GJK0C9    
COLOR: 8952    
QUANTITY: 3    
TURNOVER : 90    
SELL TROUGH: 3%   
HOW: Pack S  

REFERENCE : GJKCS4    
COLOR: 399    
....

以此类推

如何用这种格式显示结果?

<?php
$row = 1;
if (($handle = fopen($nomcsv, 'r')) !== FALSE)
{
    echo '<table>';

    // Get headers
    if (($data = fgetcsv($handle, 1000, ',')) !== FALSE)
    {
        echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>';
    }

    // Get the rest
    while (($data = fgetcsv($handle, 1000, ',')) !== FALSE)
    {
        echo '<tr><td>'.implode('</td><td>', $data).'</td></tr>';
    }
    fclose($handle);
    echo '</table>';
}


?>

您的代码稍作修改即可工作:

1.Get header 首先将它们分配给一个数组

2.Now 遍历值并将它们组合到 header 数组中,使它们成为键值对数组

3.Loop 在这个 key-value 对数组上并以所需格式打印它

4.Your 分隔符是 ; 而不是 , (根据您在代码示例中显示的内容)

<?php
$column = []; //create an array
if (($handle = fopen($nomcsv, 'r')) !== FALSE)
{

    // Get headers
    if (($data = fgetcsv($handle, 1000, ';')) !== FALSE)
    {
        $column = $data; // assign header value to array
    }

    // Get the rest
    while (($data = fgetcsv($handle, 1000, ';')) !== FALSE)
    {
        $row = array_combine($column,$data); // combine header with values
        foreach($row as $key=>$value){
            echo $key." : ".$value; //print key value pair to get desired output
            echo PHP_EOL;//you can use '<br>' as well
        }
    }
    fclose($handle);
}
?>