我在将数组转换为CSV文件时遇到问题,我现在可以将输出输出到CSV文件中,但它只是将以下内容打印到CSV文件中:
objectId createdAt
Array Array
Array Array
Array Array
Array Array
Array Array
Array Array
Array Array
我相信这是因为我需要压扁阵列,但是我不知道如何做到这一点,我几乎已经开始研究如何使用数组&我去的时候是parse.com,但我对PHP有很好的了解,我的代码如下:
$query = new ParseQuery("Counts");
$results = $query->find();
for ($i = 0; $i < count($results); $i++)
{
$detail=array();
$object = $results[$i];
$detail['objectId'][$i] = $object->getObjectId();
$detail['createdAt'][$i] = $object->getCreatedAt();
// print_r($detail);
$response[]=$detail;
}
$output = fopen('php://output', 'w');
header("Content-Type:application/csv");
header("Content-Disposition:attachment;filename=dboutput.csv");
fputcsv($output, array('objectId','createdAt'));
foreach ($response as $fields) {
fputcsv($output, $detail);
}
fclose($output);
而不是输出数组我需要输出存储的信息,存储在我的parse.com数据库中(createdAt = date&amp; objectId = string)。
如果它有助于数组如下所示:
阵 ( [date] =&gt;排列 ( [0] =&gt; eGocH6OznC )
[createdAt] => Array
(
[0] => DateTime Object
(
[date] => 2015-12-11 23:02:03.968000
[timezone_type] => 2
[timezone] => Z
)
)
) 排列 ( [date] =&gt;排列 ( [1] =&gt; P3uhKFzpsq )
[createdAt] => Array
(
[1] => DateTime Object
(
[date] => 2015-12-11 23:16:55.633000
[timezone_type] => 2
[timezone] => Z
)
)
)
我需要获得日期值&amp; objectId值为CSV文件的2列。
非常感谢任何有关此事的指导。
答案 0 :(得分:0)
执行此操作的正确代码是:
$query = new ParseQuery("Counts");
$results = $query->find();
$detail=array();
for ($i = 0; $i < count($results); $i++)
{
$object = $results[$i];
$detail[$i]['objectId'] = $object->getObjectId();
$detail[$i]['createdAt'] = $object->getCreatedAt()->format('Y-m-d H:i:s');
}
$output = fopen('php://output', 'w');
header("Content-Type:application/csv");
header("Content-Disposition:attachment;filename=dboutput.csv");
fputcsv($output, array('objectId','createdAt'));
foreach ($detail as $fields) {
fputcsv($output, $fields);
}
fclose($output);
?>