3v4l.org

run code in 300+ PHP versions simultaneously
<?php $csv = <<<CSV key=a,key2=b,key3=c key=d,key2=e,key4=f,key3=g CSV; $header = []; $rows = []; foreach (explode(PHP_EOL, $csv) as $i => $line) { foreach (str_getcsv($line) as $pair) { [$key, $rows[$i][$key]] = explode('=', $pair, 2); $header[$key] = $key; } } sort($header); $defaults = array_fill_keys($header, 'null'); $result = [implode(',', $header)]; foreach ($rows as $row) { $result[] = implode(',', array_replace($defaults, $row)); } var_export($result);

preferences:
23.41 ms | 410 KiB | 5 Q