foreach ($array as $values) fputcsv(STDOUT, $values);
配列をCSVとして出力する際に、意外と面倒なのがフィールド値のエスケープです。値の中にあるダブルクォートや改行などを適切にエスケープしなければなりません。そんなときは fputcsv() を使いましょう。
>例
$csv = array(
array('1111', '1111', '1111', '1111'),
array('2222', '2222', '2222', '22,22'), // カンマ混在
array('3333', '3333', '3333', "33\n33"),// 改行混在
array('title' => 'タイトル', // 連想配列
'name' => '名",前',// ダブルクォート,カンマ混在
'hoge' => 'ほげ',
'fuga' => 'ふが'),
…
);
header("Content-Type: application/octet-stream");
foreach ($csv as $fields) fputcsv(STDOUT, $fields);
>出力
1111,1111,1111,1111
2222,2222,2222,"22,22"
3333,3333,3333,"33
33"
タイトル,"名"",前",ほげ,ふが
CSVの制御文字が正しくエスケープされているのがわかります。
連想配列はキーを無視して値のみ使用されるので、DBから取得した値のCSV出力などで楽になるでしょう。