<?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);
- Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- array (
0 => 'key,key2,key3,key4',
1 => 'a,b,c,null',
2 => 'd,e,g,f',
)
preferences:
69.33 ms | 402 KiB | 62 Q