function CsvEncoder::extractHeaders
Return value
string[]
1 call to CsvEncoder::extractHeaders()
- CsvEncoder::encode in vendor/
symfony/ serializer/ Encoder/ CsvEncoder.php - Encodes data into the given format.
File
-
vendor/
symfony/ serializer/ Encoder/ CsvEncoder.php, line 260
Class
- CsvEncoder
- Encodes CSV data.
Namespace
Symfony\Component\Serializer\EncoderCode
private function extractHeaders(iterable $data) : array {
$headers = [];
$flippedHeaders = [];
foreach ($data as $row) {
$previousHeader = null;
foreach ($row as $header => $_) {
if (isset($flippedHeaders[$header])) {
$previousHeader = $header;
continue;
}
if (null === $previousHeader) {
$n = \count($headers);
}
else {
$n = $flippedHeaders[$previousHeader] + 1;
for ($j = \count($headers); $j > $n; --$j) {
++$flippedHeaders[$headers[$j] = $headers[$j - 1]];
}
}
$headers[$n] = $header;
$flippedHeaders[$header] = $n;
$previousHeader = $header;
}
}
return $headers;
}