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()) ]; } }