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



我有这样的代码,它读取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>';
}

?>

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

1.首先获取标题并将其分配给数组

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

最新更新