Как пропустить строку заголовка в моем цикле while с помощью fgetcsv?

Я не могу получить новый код, который я написал, чтобы пропустить первую строку (заголовок), как код, который я использовал раньше (см. внизу).

Я не получаю никаких ошибок, но просто не могу заставить его пропустить первую строку.

$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);

person acctman    schedule 10.12.2010    source источник


Ответы (2)


Зачем вообще считать? Просто получите заголовки перед циклом.

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

Кроме того, вы только назначаете указатель файла на переменную.

person Ignacio Vazquez-Abrams    schedule 10.12.2010
comment
пожалуйста, объясни? так что не используйте $row_count == 0? Мне нужно будет присвоить его $data для массива - person acctman; 10.12.2010
comment
Что это за $данные, которыми вы решили нас удивить? - person Ignacio Vazquez-Abrams; 10.12.2010
comment
о, извините, если вы посмотрите на код вверху (старый код), где я использую $data для массива - person acctman; 10.12.2010
comment
@acctman: Нет, ты не такой. Все, что я вижу, это какая-то временная переменная. - person Ignacio Vazquez-Abrams; 10.12.2010

Когда $row_count равно 0, вы не читаете ни одну строку.

Изменять

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

to

if ($row_count==0){
    $column_headers = fgetcsv($file); // read the row.
}
person codaddict    schedule 10.12.2010
comment
как я могу переписать обнаружение заголовка столбца, текущий способ дает пустой вывод - person acctman; 10.12.2010