diff --git a/src/Csv.php b/src/Csv.php index c3b6cc3..c901e71 100644 --- a/src/Csv.php +++ b/src/Csv.php @@ -846,7 +846,7 @@ class Csv { } // this is needed because sometime titles property is overwritten instead of using fields parameter! - $titlesOnParse = !empty($this->data) ? array_keys($this->data[0]) : array(); + $titlesOnParse = !empty($this->data) ? array_keys(reset($this->data)) : array(); // both are identical, also in ordering if (array_values($fields) === array_values($titlesOnParse)) { diff --git a/tests/methods/UnparseTest.php b/tests/methods/UnparseTest.php index 48ebb09..6083724 100644 --- a/tests/methods/UnparseTest.php +++ b/tests/methods/UnparseTest.php @@ -75,6 +75,12 @@ class UnparseTest extends Testcase { $this->unparseAndCompare($expected, $fields); } + public function testUnparseDefaultFirstRowMissing(){ + unset($this->csv->data[0]); + $expected = "column1,column2\rvalue3,value4\r"; + $this->unparseAndCompare($expected); + } + private function unparseAndCompare($expected, $fields = array()) { $str = $this->csv->unparse($this->csv->data, $fields); $this->assertEquals($expected, $str);