public function testReadCsvFileWithColumnHeaders() { $file = new \SplFileObject(__DIR__ . '/../Fixtures/data_column_headers.csv'); $csvReader = new CsvReader($file); $csvReader->setHeaderRowNumber(0); $this->assertEquals(array('id', 'number', 'description'), $csvReader->getFields()); foreach ($csvReader as $row) { $this->assertNotNull($row['id']); $this->assertNotNull($row['number']); $this->assertNotNull($row['description']); } $this->assertEquals(array('id' => 6, 'number' => '456', 'description' => 'Another description'), $csvReader->getRow(2)); }
/** * @param \SplFileObject $file * @param array $data * @return array */ public function getCsvHeader(\SplFileObject $file, &$data) { $csvReader = new CsvReader($file, $data['delimiter']); $csvReader->setHeaderRowNumber(0, 1); $csvReader->setStrict(false); $data['count'] = $csvReader->count(); $data['header'] = $csvReader->getColumnHeaders(); if ($csvReader->hasErrors() || count($csvReader->getFields()) <= 1) { $this->setError('error read file'); } else { $row = $csvReader->getRow(1); foreach ($row as $key => $value) { $data['first'][$key] = $value; } } return $data; }