Uso questa libreria per convertire l'array in un altro formato di dati o viceversa.
Lì puoi trovare il formato libreria/classe (Format.php) che puoi utilizzare per convertire CSV in array, quindi salvarlo nel tuo database. Questa classe supporta anche altri formati:
- xml:quasi tutti i linguaggi di programmazione possono leggere XML
- json:utile per JavaScript e sempre più app PHP.
- csv:apri con programmi per fogli di calcolo
- html:una semplice tabella HTML
- php – Rappresentazione del codice PHP che può essere eval()'ed
- serializza:dati serializzati che possono essere annullati in PHP
MODIFICA:
Questa libreria funziona su CSV con delimitatore "\n" su ogni riga e "," su ciascuna colonna, puoi usarla in questo modo:
$this->load->library('format');
$string_csv = "YOUR CSV";
$result = $this->format->factory($string_csv, 'csv')->to_array();
var_dump($result);
Proprio così semplice. Tuttavia, come ho detto sopra, se hai un altro delimitatore, devi regolare la libreria in base alle tue esigenze. Qui la funzione principale per convertire CSV in array:
function _from_csv($string)
{
$data = array();
// Splits
$rows = explode("\n", trim($string));
$headings = explode(',', array_shift($rows));
foreach ($rows as $row)
{
// The substr removes " from start and end
$data_fields = explode('","', trim(substr($row, 1, -1)));
if (count($data_fields) == count($headings))
{
$data[] = array_combine($headings, $data_fields);
}
}
return $data;
}
EDIT 2:
Il mio esempio funzionerà su questo formato CSV standard:
Heading1, Heading2, Heading3
"1","John","London"
"2","Brian","Texas"