Получить csv строку из массива

function arrayToCsv(array $data): string
{
    $fh = fopen('php://temp', 'rw');

    fputcsv($fh, array_keys(current($data)), ';');

    foreach ($data as $row) {
        $row = array_map(
            function ($value) {
                return mb_convert_encoding($value, 'windows-1251', 'utf-8');
            },
            $row
        );

        fputcsv($fh, $row, ';');
    }

    rewind($fh);

    $csv = stream_get_contents($fh);

    fclose($fh);

    return $csv;
}

Формат подходит для excel.