我有一個函數從參數中獲取.csv
文件,並獲取此數組的一個myrownumber
(指示.csv的一行的數字)。在PHP中讀取csv文件上的特定行
這將返回csv文件的行號myrownumber
的內容。
private function readASpecificRow($filePath, $myrownumber)
{
$rowImLookingFor = array();
$f = fopen($filePath, "r");
$i = 0;
while (($line = fgetcsv($f)) !== false)
{
$i ++;
foreach ($line as $cell)
{
if ($i == $myrownumber)
{
array_push($rowImLookingFor, $cell);
}
}
}
fclose($f);
return($rowImLookingFor);
}
這正如我遍歷所有的文件,直到我發現我在尋找該行非常innefficent。
是否有任何其他方式直接讀取csv
文件的行號myrownumber
?
PS:我知道有很多解決方案與將喜歡用fgetcsv
因爲細胞是一些換行,並與fgetscsv
我把它的控制,以保持。如果我使用file
或其他什麼,由於某些單元格內部的換行符,行數與csv的實際行數不同。
在此先感謝。
你可以在'foreach'之外加上'$ i == $ myrownumber'。沒有必要爲每個單元檢查它,當它只在每一行上發生變化時。 – Ezenhis