/** * Export array data to CSV format. * * @param array $ary * @param string|array $omit * @param string $delim * @param string $esc * @param string $dt * @return void */ public function export($ary, $omit = null, $delim = ',', $esc = '"', $dt = null) { $output = ''; $headerAry = array(); if (is_null($omit)) { $omit = array(); } else { if (!is_array($omit)) { $omit = array($omit); } } // Initialize and clean the header fields. foreach ($ary[0] as $key => $value) { if (!in_array($key, $omit)) { $k = new Moc10_String((string) $key); if ($k->pos($esc) !== false) { $k->replace($esc, $esc . $esc); } if ($k->pos($delim) !== false) { $k = new Moc10_String($esc . $k . $esc); } $headerAry[] = (string) $k; } } // Set header output. $output .= implode($delim, $headerAry) . "\n"; // Initialize and clean the field values. foreach ($ary as $value) { $rowAry = array(); foreach ($value as $key => $val) { if (!in_array($key, $omit)) { if (!is_null($dt)) { if (strtotime($val) !== false || stripos($key, 'date') !== false) { $v = date($dt, strtotime($val)) != '12/31/1969' ? new Moc10_String(date($dt, strtotime((string) $val))) : new Moc10_String(''); } else { $v = new Moc10_String((string) $val); } } else { $v = new Moc10_String((string) $val); } if ($v->pos($esc) !== false) { $v->replace($esc, $esc . $esc); } if ($v->pos($delim) !== false) { $v = new Moc10_String($esc . (string) $v . $esc); } $rowAry[] = $v; } } // Set field output. $output .= implode($delim, $rowAry) . "\n"; } $this->write($output); return $this; }