PHP 数组到 CSV 问题

PHP array to CSV issues

我有一个数组: $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 个单元格中并带有引号。

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

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

使用 array( $overtime, $rowcsv['reasonforabsence']) 可以构造一个包含两个条目的数组。 根据 $rowcsv['reasonforabsence'] 是一个简单的逗号分隔值字符串,您必须将其 explode() 成一个数组并将其与您的 $overtime 值合并:

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