setDelimiter("\t"); $config->setFlags(\SplFileObject::READ_AHEAD | \SplFileObject::SKIP_EMPTY | \SplFileObject::READ_CSV); $lexer = new Lexer($config); // set up interpreter $interpreter = new Interpreter(); $interpreter->addObserver(function(array $row) use (&$temperature) { $temperature[] = array( 'temperature' => $row[0], 'city' => $row[1], ); }); // parse $lexer->parse('temperature.tsv', $interpreter); var_dump($temperature);