Получить 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.