如何逐行显示 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);
}
?>
我有这段代码可以读取 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);
}
?>