Jag använder det här biblioteket för att konvertera array till något annat dataformat eller vice versa.
Där kan du hitta biblioteks-/klassformat (Format.php) som du kan använda för att konvertera CSV till array och sedan spara det i din databas. Den här klassen stöder även andra format:
- xml – nästan alla programmeringsspråk kan läsa XML
- json – användbar för JavaScript och allt fler PHP-appar.
- csv – öppna med kalkylprogram
- html – en enkel HTML-tabell
- php – Representation av PHP-kod som kan eval()'ed
- serialisera – Serialiserad data som kan unserialiseras i PHP
EDIT:
Det här biblioteket fungerar på CSV med avgränsare "\n" på varje rad och "," på varje kolumn, du kan använda det så här:
$this->load->library('format');
$string_csv = "YOUR CSV";
$result = $this->format->factory($string_csv, 'csv')->to_array();
var_dump($result);
Bara så enkelt. Men som jag sa ovan om du har en annan avgränsare måste du justera biblioteket efter behov. Här är huvudfunktionen för att konvertera CSV till 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:
Mitt exempel kommer att fungera på detta standard CSV-format:
Heading1, Heading2, Heading3
"1","John","London"
"2","Brian","Texas"