PHP数组到CSV问题

时间:2015-07-31 13:15:10

标签: php arrays csv fputcsv

我有一个数组: $rowcsv['reasonforabsence']这包含未确定数量的值。 我想将此数组的值与其他值一起输出到CSV:

fputcsv($output, array( $overtime, $rowcsv['reasonforabsence']));

但是当我这样做时,CSV输出:

|6|"Holiday Full Day,Sick Full Day,Sick AM,Sick PM,Holiday Full Day,Holiday AM,Holiday PM,Absent Full Day,Absent AM|`

因此,基本上不是将$rowcsv['reasonforabsence']数组放入新单元格中的数组,而是将所有值放入1个单元格中。 我试过了:

$reasonforabsence = explode( ',', $rowcsv['reasonforabsence'] );

$reasonforabsence = implode('","', $reasonforabsence);

但是我得到了输出:

"Holiday Full Day"",""Sick Full Day"",""Sick AM"",""Sick PM"",""Holiday Full Day"",""Holiday AM"",""Holiday PM"",""Absent Full Day"",""Absent AM"

此时,所有内容仍然出现在1个单元格中,并带有引号。

2 个答案:

答案 0 :(得分:1)

使用$overtime$rowcsv['reasonforabsence']array_merge合并为一个数组,并将合并的数组传递给fputcsv

$row = array_merge(array($overtime),explode(',',$rowcsv['reasonforabsence']));
fputcsv($output,$row);

答案 1 :(得分:0)

使用$ php -f i.html <!DOCTYPE html> <body> <ul><li><a href="#OtherPublications">Other Publications (1)</a></li></ul> <a name="OtherPublications"></a><h2>Other Publications (1)</h2> <table class="result"> <tr><td colspan="2" class="theader">2006</td></tr> <tr class="bibline"><td class="bibref"><a class="bibanchor" name="1"></a>[1]</td><td class="bibitem"><span itemscope itemtype="http://schema.org/ScholarlyArticle"><span class="bibtitle" itemprop="name">My Article</span> (<span class="bibauthor"><span itemprop="author" itemtype="http://schema.org/Person">Nobody Jr</span></span>), <span itemprop="datePublished">2006</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.btitle=My+Article&amp;rft.genre=report&amp;rft.pub=&amp;rfr_id=info%3Asid%2F%3Afoo.bib&amp;rft.date=2006&amp;rft.au=%3Cspan+itemprop%3D%22author%22++itemtype%3D%22http%3A%2F%2Fschema.org%2FPerson%22%3ENobody+Jr%3C%2Fspan%3E"></span></span> <span class="bibmenu"><a class="biburl" title="Nobody06" href="bibtexbrowser.php?key=Nobody06&amp;bib=foo.bib">[bibtex]</a></span></td></tr> </table></body> </html> 构造一个包含两个条目的数组。 根据{{​​1}}是一个简单的逗号分隔值字符串,你必须将它爆炸()成一个数组并将其与你的超时值合并:

array( $overtime, $rowcsv['reasonforabsence'])