[英]PHP echo issue while in a while loop
我通過使用while循環讀取了一個csv文件:
while (($data = fgetcsv($handle, null, ",")) !== FALSE)
我想跳過第一行,因為這是標題行,我想在屏幕上顯示“跳過第一行”。
if($data[0]=="title")
echo "Title row..skipping<br />";
else
//do stuff
問題是,由於它在while循環中會打印出“標題行...跳過”,如下所示:
Checking row 0...
Title row..skipping
Title row..skipping
Title row..skipping
Title row..skipping
Title row..skipping
Title row..skipping
Title row..skipping
Checking row 1...
我該怎么辦,它只打印一次? 它與php的輸出緩沖有關嗎?
或調用一次fgetcsv($handle, null, ",")
而不進行賦值,將處理程序向前移動一行:
fgetcsv($handle, null, ",");
while (($data = fgetcsv($handle, null, ",")) !== FALSE) {
// do stuff
}
if($data[0]=="title") {
if (!$skipped) {
echo "Title row..skipping<br />";
$skipped = true;
}
}
else
//do stuff
如果您確定只需要跳過第一行,那么;
if(!$skipped)
{
echo "Title row..skipping<br />";
$skipped = true;
}
else
//do stuff
我認為使用foreach會更優雅:
foreach data as item {
if (item == "title") {
echo "Skipping title<br/>";
}
}
您現在的狀態如何,每次循環時都要檢查if (data[0] == "title")
。 data[0]
將始終等於“標題”,因此它將始終為true。 您可以增加$index
變量的大小,並執行類似if (data[$index] == $title)
然后在循環的底部附近進行$index++
的操作,但是為什么在foreach
本質上會為您執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.