Normalizzare un CSV

Preso il contenuto di un file CSV ecco una veloce funzione per normalizzarlo per righe e colonne:

function normalize_csv($content){
$rows = explode(PHP_EOL, $content);
$cols = [];
foreach ($rows as $key => $row) {
$cols[] = explode(';', $row);
}
return $cols;
}

Si da per assunto che le righe siano divise da un "a capo" (in codice PHP_EOL) mentre le colonne siano divise dal punto-e-virgola ; .

Headers?

Un altra semplice funzione per normalizzarlo con gli headers.

La funzione prende in input il percorso del file e considera lo standard di divisione la virgola ,+

function normalize_csv($file){
$rows = array_map('str_getcsv', file($file));
$header = array_shift($rows);
$csv = array();
foreach($rows as $row) {
$csv[] = array_combine($header, $row);
}
‚Äč
return $csv;
}