在PHP中读取csv文件时无法按正确顺序显示行

在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");

在浏览器中打开时,我无法按正确顺序显示行和列。 预期输出:你好,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");
    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行获取一次输出。