我有一个函数从参数中获取.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