簡體   English   中英

循環無法正常運行

[英]loop not functioning properly

我無法使此循環正常運行。 每當($records[$row][2] == $prevRow2)我都需要它來重新創建class = field並僅關閉div = row,它是組中的一部分,其中($records[$row][2] == $prevRow2) 請幫忙!!

    if (($handle = fopen('upload/ATLANTA.csv', "r")) !== FALSE) {
        $prevRow2 = false;
                $row=0;
        while (($data = fgetcsv($handle, 1000, ","))) {
            $num = count($data);
            $records[] = $data;
            echo "<div id=\"row\"><div id=\"num\">" .$row. "</div>";
            echo 'Is '. $prevRow2 . 'the same as ' .$records[$row][2];

            if ($records[$row][2] == $prevRow2) {
                for ($c=0; $c < $num; $c++) {
                if ($c != 1) {
                    echo "<div class=\"field\">" . $data[$c] . "</div>";
                    }   
                }

                $prevRow2 = $records[$row][2];
                $row++;
                echo "<div id=\"filler\"></div>";

            }//if close

            else {
                for ($c=0; $c < $num; $c++) {
                    if ($c != 1) {  
                    echo "<div class=\"field\">" . $data[$c] . "</div>";
                    }   
                }
                $prevRow2 = $records[$row][2];
                $row++;
            }//close else           
        echo '</div>';
        }//close while

fclose($handle);

}

$ row在您創建$ row ++的行之前似乎為空;

某些輸出和/或對數據的進一步描述確實會有所幫助,但我注意到一些事情。

1-您的結束if和else執行完全相同的操作,除了該填充div。 我覺得這不是您想要的,但是我對建議的理解還不夠。

  for ($c=0; $c < $num; $c++) { if ($c != 1) { echo "<div class=\\"field\\">" . $data[$c] . "</div>"; } } $prevRow2 = $records[$row][2]; $row++; 

該代碼對於if和else塊都是通用的,因此無論執行什么都將執行。 那是你要的嗎? 如果是這樣,則最好將其從if中移出,僅將填充div移至if中,否則不移。

2-$ records和$ records [$ row]的用途是什么。 據我所知,只要使用$ records [$ row] === $ data。

3-id = row的div在每個while循環結束時關閉。 您似乎建議您不要這樣做,如果僅在$ records [$ row] [2]又稱為$ data [2]與先前的迭代匹配時這樣做,我認為您的HTML格式不正確。

4-嘗試使用foreach而不是foor循環

看起來Company實際上是索引3,而不是2。

  $prevData3 = false; $row=0; while (($data = fgetcsv($handle, 1000, ","))) { if ($data[2] != $prevData2) { if ($prevData2) echo '</div>'; echo "<div id=\\"row\\"><div id=\\"num\\">" .$row. "</div>"; row++; } else echo "<div id=\\"filler\\"></div>"; foreach ($data as $d) { if ($c != 1) { echo "<div class=\\"field\\">" . $d . "</div>"; } } echo "<br />"; $prevData2 = $data[2]; } 

回聲CLOSE_DIV;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM