Как сформировать csv файл на PHP без сохранения его на сервере?
например, так:$data = [
	'1,2,3',
	'4,5,6',
	'7,8,9'
];

header('Content-Type: text/csv');
header('Content-disposition: attachment;filename=data.csv');
foreach ($data as $row) {
	echo $row, PHP_EOL;
}
нужно отдать заголовком соответствующий content-type и просто вывести содержимое файла тем же echo

Совершенно верно, вот простой скрипт с таким методом:
aceweb.ru/articles/php/export-csv.php