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