[英]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.