2017-07-16 211 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。 –