2017-07-16 15 views
0

名前と電子メールアドレスであるデータベースから配列を保持する変数を持っています。配列変数をcsvに変換する

Array ( 
    [0] => stdClass Object ([fname] => FName [lname] => LName [email] => Email) 
    [1] => stdClass Object ([fname] => FName [lname] => LName [email] => Email) 
) 

というように、私はすでに、すべてのCSVファイルを作成するためのフレームワークで設定したすべてのユーザー

のリストを、私はトラブルの建物を持っています:

アレイ構造でありますforeachループは配列変数を繰り返し処理し、その情報をcsvに格納します。私はいくつかの方法で試してみたところ、csvにエラーが読み込まれました。私はすでにヘッダーを用意しています。

$users = SiteUser::select()->getColumns('fname, lname, email'); 

    foreach ($users as $u) { 
     // print each user as a CSV row (columns are name, email) 
     // Anything here will be place into the csv file for download 
    } 


    exit; 
} 
+2

http://php.net/manual/de/function.fputcsv.php – colburton

+0

私はそれを試してみました、それは私が必要なものではありません –

+0

どのようにあなたのフレームワークでcsvを保存しているとしようとしているときにエラーは何ですか? 'stdClass'をまず配列に変換する必要があるかもしれませんか? – Rasclatt

答えて

0

あなたは配列にstdClassを変換した後、fputcsvで出力できます。

// Get pointer to standard output 
$fp = fopen('php://output', 'w'); 
// write column headers 
fputcsv($fp, ["name", "email"]); 

foreach ($users as $u) { 
    // assemble array and write 
    fputcsv($fp, [$u->fname . " " . $u->lname, $u->email]); 
} 

fclose($fp); 
+0

ありがとうございました。私はファイルを開いて閉じなければならないことを認識していませんでしたが、フレームワークのモデルの機能がすでにセットアップされていると思っていましたが、明らかにそうではありませんでした。私も前にstdclassで作業したことはありません。 –

関連する問題