我在将数组输入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);
我不需要它输出Array,而是需要它输出存储的信息,这些信息存储在我的parse.com数据库中(createdAt=date&objectId=string)。
如果它有助于阵列看起来如下:
阵列([date]=>数组([0]=>eGocH6OznC)
[createdAt] => Array
(
[0] => DateTime Object
(
[date] => 2015-12-11 23:02:03.968000
[timezone_type] => 2
[timezone] => Z
)
)
)大堆([date]=>数组([1] =>P3uhKFzpsq)
[createdAt] => Array
(
[1] => DateTime Object
(
[date] => 2015-12-11 23:16:55.633000
[timezone_type] => 2
[timezone] => Z
)
)
)
我只需要得到日期值&objectId值转换为CSV文件的两列。
我们非常感谢有关这方面的任何指导。
执行此操作的正确代码是:
$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);
?>