PHP Klasse CSV 2 Hash

Wandelt CSV Daten in einen Hash um.

WORK IN PROGRESS

 

Mit dieser Klasse kann man CSV Daten in einen Hash umwandeln.

Die Werte in der ersten Zeile des CSV werden als Keys der einzelnen Datenreihen verwendet. Auf diese Weise kann man die Spalten statt mit einer Spaltennummer

$cell[4][3]

... mit dem Key ansprechen

$cell[4]['Vorname']

 

Vorteile:

  • Es ist einfacher lesbar, insbesondere wenn man etwas mehr Spalten hat
  • Es ist hilfreich bei Import-Skripten. Verwendet man die Keys, dann kann sich auch mal das CSV ändern und man muss weniger im Code des Importers anpassen

 

Weiterhin gibt es noch diese Features:

  • Wenn der Key ein Trennzeichen "." besitzt, dann werden Subkeys erzeugt. Das Trennzeichen ist konfigurierbar.
  • Es gibt eine Filterfunktion, die nur Zeilen zurückliefert, wenn eine angegebene Spalte einem Wert oder Regex entspricht.

 

Beispiel:

Mein Test CSV mit 5 Spalten ... 3 Datenreihen.

id,hide,label,flag.x,flag.y
1,1,one,0,1
2,0,two,1,0
3,0,three,1,0

PHP:

require_once(dirname(__DIR__).'/src/csv2hash.class.php');
$sCsvfile='/full/path/of/file.csv';

$oC2H=new csv2hash();
$oC2H->setCsvFile($sCsvfile);

print_r($oC2H->getData(),1)

Ausgabe:

Array
(
    [0] => Array
        (
            [id] => 1
            [hide] => 1
            [label] => one
            [flag] => Array
                (
                    [x] => 0
                    [y] => 1
                )

        )

    [1] => Array
        (
            [id] => 2
            [hide] => 0
            [label] => two
            [flag] => Array
                (
                    [x] => 1
                    [y] => 0
                )

        )

    [2] => Array
        (
            [id] => 3
            [hide] => 0
            [label] => three
            [flag] => Array
                (
                    [x] => 1
                    [y] => 0
                )

        )

)

 

 

Sourcecode und Beispiele:

https://github.com/axelhahn/class-csv2hash