Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. CsvEncoder.php

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\Encoder

Code

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;
}
RSS feed
Powered by Drupal