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


Unable to dispay rows in proper order while reading csv file in PHP

打开浏览器时无法按正确顺序显示行和列。期望输出:hello,hello1,hello3,hello4,ff,hh,ii,jj实际输出:你好,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新手

据我所知,您想先浏览第一列,然后浏览第二列。如果我们可以假设你有一个逗号分隔的文件那么像这样的代码应该可以工作:

<?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。

可能有一个更有效的方法,但这应该会让你开始。