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