Uso esta biblioteca para convertir una matriz a algún otro formato de datos o viceversa.
Allí puede encontrar el formato de biblioteca/clase (Format.php) que puede usar para convertir CSV en una matriz y luego guardarlo en su base de datos. Esta clase también admite otro formato:
- xml:casi cualquier lenguaje de programación puede leer XML
- json:útil para JavaScript y, cada vez más, aplicaciones PHP.
- csv:abrir con programas de hoja de cálculo
- html:una tabla HTML sencilla
- php:representación del código PHP que se puede evaluar()
- serialize:datos serializados que se pueden deserializar en PHP
EDITAR:
Esta biblioteca funciona en CSV con el delimitador "\n" en cada fila y "," en cada columna, puede usarla así:
$this->load->library('format');
$string_csv = "YOUR CSV";
$result = $this->format->factory($string_csv, 'csv')->to_array();
var_dump($result);
Así de simple. Sin embargo, como dije anteriormente, si tiene otro delimitador, debe ajustar la biblioteca según sus necesidades. Aquí la función principal para convertir CSV a matriz:
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;
}
EDICIÓN 2:
Mi ejemplo funcionará en este formato CSV estándar:
Heading1, Heading2, Heading3
"1","John","London"
"2","Brian","Texas"