第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 PHP 函數(shù) fgetcsv() 或 fopen() 跳過前 n 行?

如何使用 PHP 函數(shù) fgetcsv() 或 fopen() 跳過前 n 行?

PHP
慕仙森 2023-08-19 14:26:50
使用 打開 CSV 文件后fopen(),我目前正在跳過這些文件的前三行,如下所示:fgetcsv($file, 0, ';');fgetcsv($file, 0, ';');fgetcsv($file, 0, ';');有沒有更好的方法來跳過前 n 行?
查看完整描述

3 回答

?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

如果您需要跳過多行,只需添加循環(huán)內(nèi)已有的“一次性讀取”代碼的一個實例即可for。循環(huán)數(shù)等于跳過的行數(shù)(例如 8 行):

for ($i = 0; $i < 8; $i++) { 
    fgetcsv($file, 0, ';');
}

在開始主while循環(huán)獲取您關(guān)心的 CSV 行之前執(zhí)行此操作。您可以將循環(huán)轉(zhuǎn)變?yōu)閷嵱煤瘮?shù)——如果您發(fā)現(xiàn)自己經(jīng)常以不同的跳躍長度執(zhí)行此操作。

function fskipcsv_lines($handle, int $lines) {
    for ($i = 0; $i < $lines; $i++) { 
        fgetcsv($handle, 0, ';');
    }
}

夠簡單的。相同的構(gòu)造適用于您不需要從中獲取返回值的任何其他函數(shù)的“啞”重復(fù),該函數(shù)只需要被調(diào)用 N 次。

PS 不要將“跳行”檢查例程放在主 CSV 迭代循環(huán)中。為什么?因為檢查(例如$row < 3; 或in_array($row, $skips))會在每次循環(huán)迭代時發(fā)生。假設(shè)您需要讀取 100,000 多行,開銷將開始增加,因為前幾行(現(xiàn)在已經(jīng)過去)而給每個循環(huán)迭代帶來不必要的負(fù)擔(dān)。


查看完整回答
反對 回復(fù) 2023-08-19
?
弒天下

TA貢獻1818條經(jīng)驗 獲得超8個贊

查看此代碼。

$file = fopen('example.csv', 'r');? // Here example is a CSV name

$row = 1;

$number_to_skip = 3

while (($line = fgetcsv($file,0, ",")) !== FALSE) {

// $line is an array of the csv elements

if($row < $number_to_skip)

{?

? $row++; continue;? ?// continue is used for skip row 0,1,2

}?

print_r($line);


}


查看完整回答
反對 回復(fù) 2023-08-19
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

你做得對,但是如果你要跳過很多代碼,這段代碼可能會有所幫助。:


$skippTheseLines = array(1,2,3);

$i = 0;

$totlLines= 10000;


while (($emapData = fgetcsv($file, $totalLines, ";")) !== FALSE) {


   if(in_array($i, $skippTheseLines)) { 

       continue; 

   }else{

       // rest of your code

   }


    $i = $i + 1;

}


查看完整回答
反對 回復(fù) 2023-08-19
  • 3 回答
  • 0 關(guān)注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號