Hauptmenü

Werkzeuge

Kategorien

Archiv

Mit PHP einen CSV String in einen Array parsen

Erstellt in Allgemein am 4. Mai 2025 vom Daschmi

Mit folgender PHP Klasse/Funktion kann ein CSV String in einen Array geparsed werden. In Zeile 1 wird der Kopf erwartet, der dann als Schlüssel für die Daten fungiert.

abstract class csvHelper {

  public static function csvToArray(string $csvString): array {
      
    $lines = explode("\n", $csvString);
    
    $arKeys = array_map('trim', str_getcsv(array_shift($lines)));
    $arResult = [];

    foreach ($lines as $line) {
      
      if (trim($line) !== "") {
        
        $arValues = array_map('trim', str_getcsv($line));
        $arResult[] = array_combine($arKeys, $arValues);
      
      }
    
    }

    return $arResult;
  
  }

}

Oder besser mit der Bibliothek league/csv

abstract class csvHelper {

  public static function csvToArray(string $csvString): array {

    $reader = League\Csv\Reader::createFromString($csvString);
    $reader->setHeaderOffset(0);

    return [
	  iterator_to_array($reader->getRecords())
    ];

  }

}