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;
}

Last updated