Jeg bruger dette bibliotek til at konvertere array til et andet dataformat eller omvendt.
Der kan du finde bibliotek/klasse-format (Format.php), som du kan bruge til at konvertere CSV til array og derefter gemme det i din database. Denne klasse understøtter også andre formater:
- xml – næsten ethvert programmeringssprog kan læse XML
- json – nyttig til JavaScript og i stigende grad PHP-apps.
- csv – åben med regnearksprogrammer
- html – en simpel HTML-tabel
- php – Repræsentation af PHP-kode, der kan eval()'ed
- serialize – Serialiserede data, der kan unserialiseres i PHP
EDIT:
Dette bibliotek fungerer på CSV med skilletegn "\n" på hver række og "," på hver kolonne, du kan bruge det sådan her:
$this->load->library('format');
$string_csv = "YOUR CSV";
$result = $this->format->factory($string_csv, 'csv')->to_array();
var_dump($result);
Bare så simpelt. Men som jeg sagde ovenfor, hvis du har en anden afgrænser, skal du justere biblioteket efter dit behov. Her er hovedfunktionen til at konvertere CSV til 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:
Mit eksempel vil fungere på dette standard CSV-format:
Heading1, Heading2, Heading3
"1","John","London"
"2","Brian","Texas"