while 循环用于读取 CSV 文件中除第一行之外的每一行。但是,当使用该if语句忽略第一行时,不会读取任何行。删除该if语句允许它按预期读取所有行。为什么是这样?
$rowNumber = 1;
// Load CSV into array
$inputFileName = '/var/www/site/data.csv';
$file = fopen($inputFileName, 'r');
while (($row = fgetcsv($file)) !== FALSE) {
// Ignore row #1 (headers)
if($rowNumber == 1)
continue;
doSomeWork();
// Increment row number
$rowNumber++;
}
fclose($file);
echo 'Loaded: ' . $rowNumber . ' rows';
Run Code Online (Sandbox Code Playgroud)
你不需要continue那里。尝试
$rowNumber = 1;
// Load CSV into array
$inputFileName = '/var/www/site/data.csv';
$file = fopen($inputFileName, 'r');
while (($row = fgetcsv($file)) !== FALSE) {
// Ignore row #1 (headers)
if($rowNumber != 1)
{
doSomeWork();
}
// Increment row number
$rowNumber++;
}
fclose($file);
echo 'Loaded: ' . $rowNumber . ' rows';
Run Code Online (Sandbox Code Playgroud)
编辑
只是为了解释为什么您continue没有按预期工作。PHP手册说
continue 在循环结构中用于跳过当前循环迭代的其余部分,并在条件评估和下一次迭代开始时继续执行。
这意味着当你的 continue 被调用时,你的语句$rowNumber++;也会被跳过,这意味着你$rowNumber总是保持 1,因此所有的行都被跳过:)
| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |