在PHP中读取csv文件时无法按正确顺序显示行
在浏览器中打开时,我无法按正确顺序显示行和列。 预期输出:你好,hello1,hello3,hello4,ff,hh,ii,jj 实际输出:hello,ff,hello1,hh,hello3,ii,hello4,jj 我需要迭代第1列和第2列。下面是我的CSV文件和PHP代码在PHP中读取csv文件时无法按正确顺序显示行,php,Php,在浏览器中打开时,我无法按正确顺序显示行和列。 预期输出:你好,hello1,hello3,hello4,ff,hh,ii,jj 实际输出:hello,ff,hello1,hh,hello3,ii,hello4,jj 我需要迭代第1列和第2列。下面是我的CSV文件和PHP代码 Name position hello ff hello1 hh hello3 ii hello4 jj <?php $file = fopen('joinUs.csv', "r");
Name position
hello ff
hello1 hh
hello3 ii
hello4 jj
<?php
$file = fopen('joinUs.csv', "r");
while ($row = fgetcsv($file, 1000, ',')) {
$colCount = count($row);
for ($x=0; $x<$colCount; $x++) {
echo "<ul>";
echo "<li><a href='#".$row[$x]."'>$row[$x]|</a> </li>";
echo "</ul>";
}
}
fclose($file);
?>
请告诉我如何在PHP中迭代第一列。我是PHP新手。据我所知,您希望先浏览第1列,然后浏览第2列。如果我们可以假设您有一个逗号分隔的文件,那么类似的方法应该可以工作:
<?php
$file = fopen('joinUs.csv', "r");
# skip the first line with the titles.
fgets($file);
$first = array();
$second = array();
while ($row = fgetcsv($file, 1000, ','))
{
# first column
$first[] = trim($row[0]);
# second column
$second[] = trim($row[1]);
}
fclose($file);
echo "<ul>";
foreach( array_merge($first,$second) as $item )
{
echo "<li><a href='#".$item."'>".$item."|</a> </li>";
}
echo "</ul>";
?>
然后输出为:
<ul>
<li><a href='#hello'>hello|</a> </li>
<li><a href='#hello1'>hello1|</a> </li>
<li><a href='#hello3'>hello3|</a> </li>
<li><a href='#hello4'>hello4|</a> </li>
<li><a href='#position'>position|</a> </li>
<li><a href='#ff'>ff|</a> </li>
<li><a href='#hh'>hh|</a> </li>
<li><a href='#ii'>ii|</a> </li>
<li><a href='#jj'>jj|</a> </li>
</ul>
这是假设你想要的订单是hello,hello1,hello3,hello4,ff,hh,ii,jj
可能有一种更有效的方法,但这应该可以让您继续。您需要将和移出for循环,以便它们只为您读取的每一个csv行获取一次输出。