Set $data field on unparse. This fixes issue #132.

This commit is contained in:
Fonata
2018-03-17 12:14:04 +01:00
parent 07846d33c1
commit f5ff7332a4

View File

@@ -783,6 +783,9 @@ class Csv {
public function unparse($data = array(), $fields = array(), $append = FileProcessingModeEnum::MODE_FILE_OVERWRITE, $is_php = false, $delimiter = null) {
if (!is_array($data) || empty($data)) {
$data = &$this->data;
} else {
/** @noinspection ReferenceMismatchInspection */
$this->data = $data;
}
if (!is_array($fields) || empty($fields)) {
@@ -833,8 +836,6 @@ class Csv {
}
private function _validate_fields_for_unparse($fields) {
// this is needed because sometime titles property is overwritten instead of using fields parameter!
$titlesOnParse = !empty($this->data) ? array_keys($this->data[0]) : array();
if (empty($fields)) {
$fields = $this->titles;
}
@@ -843,6 +844,9 @@ class Csv {
return array();
}
// this is needed because sometime titles property is overwritten instead of using fields parameter!
$titlesOnParse = !empty($this->data) ? array_keys($this->data[0]) : array();
// both are identical, also in ordering
if (array_values($fields) === array_values($titlesOnParse)) {
return array_combine($fields, $fields);