FGETCSVを使用して、Header RowをWhile Loopでスキップするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4409911

  •  08-10-2019
  •  | 
  •  

質問

最初の行(ヘッダー)をスキップするために書いた新しいコードを取得できません(以前に使用したコード(下を参照)。

私はエラーを受け取っていませんが、最初の行を省略することはできません。

$file = fopen($uploadcsv,"r");
$column_headers = array();
$row_count = 0;
while(!feof($file)) {   
  if ($row_count==0){
    $column_headers = $file;
  } else {
    print_r(fgetcsv($file));
  }
  ++$row_count;
  }

fclose($file);

以下は、参照と比較のために、ヘッダーをスキップした古いソースです。

$handle = fopen($uploadcsv, 'r');
$column_headers = array();
$row_count = 0;
while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {
  if ($row_count==0){
    $column_headers = $data;
  } else {
    print_r($data);
  }
  ++$row_count;
}
fclose($handle);
役に立ちましたか?

解決

なぜ数えるのですか?ループする前にヘッダーを取得してください。

$column_headers = fgetcsv($file);
while(!feof($file)) {
   ...

また、ファイルポインターを変数に割り当てるだけです。

他のヒント

いつ $row_count0 あなたは違う 読む 任意の行。

変化する

if ($row_count==0){
    $column_headers = $file;  // just assigning file handle.
}

if ($row_count==0){
    $column_headers = fgetcsv($file); // read the row.
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top