パラメータから.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);
}
これは、私が探している行が見つかるまで、すべてのファイルを繰り返し処理するので非常に非効率的です。
csv
ファイルの行番号myrownumber
を直接読み取る方法はありますか?
PS:多くの解決策がありますが、fgetcsv
を使用してください。セルには改行がいくつかあり、fgetscsv
で制御しています。私がfile
などを使用している場合、いくつかのセルの内部で改行が行われるため、行の数はcsvの実数とは異なります。
ありがとうございます。
あなたは 'foreach'の外で' $ i == $ myrownumber'を取ることができます。各行でのみ変更されるときに、各セルごとにチェックする必要はありません。 – Ezenhis