【问题标题】:How to display line by line a csv file in PHP with a particular structure? [closed]如何在 PHP 中逐行显示具有特定结构的 csv 文件? [关闭]
【发布时间】:2020-03-24 18:47:17
【问题描述】:

我有这段代码可以读取一个 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    
...

首先是标题,然后是所有行。

我想这样显示:

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>';
}


?>

【问题讨论】:

  • 是否尝试更改提供的代码?
  • 我认为 OP 希望我们中的一个人能够为他们做所有这些事情@u_mulder
  • 不,我设法在一行中显示标题分隔的行,但我无法分隔我的 csv 文件中的列来显示它们。
  • 是的,我们可以看到,但这并不能达到您想要的效果,因此您必须对代码进行相当大的修改才能获得所需的输出
  • 列在评论// Get headers下。不要覆盖$data,您将拥有自己的列。

标签: php fopen implode fgetcsv


【解决方案1】:

您的代码将进行一些修改:

1.先获取headers并赋值给数组

2.现在循环遍历这些值并将它们组合到头数组中,使它们成为键值对数组

3.循环这个键值对数组并以所需的格式打印出来

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

<?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);
}
?>

【讨论】:

  • @NigelRen 我已经完全改变了我的答案。看看
猜你喜欢
  • 2014-10-10
  • 2014-06-12
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 2017-01-06
  • 1970-01-01
相关资源
最近更新 更多