我有一个多维数组,如下所示:
Array ( [email1@fake.com] => Array ( [0] => Array ( [asin] => B004HFS6Z0 [title] => Kindle, Wi-Fi, Graphite, 6" Display [price] => 114.00 [map] => 125.00 ) ) [email2@fake.com] => Array ( [0] => Array ( [asin] => B004CYX17O [title] => Rizzy Home Apple 10-Piece Comforter Set, King [price] => 502.80 [map] => 520.00 ) ) )
我要做的是将电子邮件地址下的子数组导出到文件中,然后通过电子邮件发送到电子邮件地址。到目前为止,我只能将两个子数组导出到一个文件中,并且无法让它覆盖第二个子数组的文件。
以下是我正在使用的代码:
require('export-xls.class.php');
$filename = 'email.xls';
$xls = new ExportXLS($filename);
$header[] = "ASIN";
$header[] = "Title";
$header[] = "Retail";
$header[] = "MAP";
$xls->addHeader($header);
//create temp csv file and email from subarray
foreach($map_check2 as $email => $value) {
//$fp = fopen('uploads/email.csv', 'w+');
foreach($value as $subkey => $subvalue) {
//echo $email . "<br>";
//print_r($subvalue) . "<br>";
//fputcsv($fp, $subvalue);
$xls->addRow($subvalue);
}
$xls->emailFile();
}
我需要将它导出到excel文件并且一直使用export-xls.class来执行此操作。我会使用csv但是会定期在数组中的值中使用逗号。
emailFile()是:
public function emailFile() {
#build the xls
$xls = $this->buildXLS();
$fp = fopen("uploads/email.xls", "w+");
fwrite($fp, $xls);
fclose($fp);
}
有没有人有任何想法?或者这有意义吗?
答案 0 :(得分:0)
在您的内部foreach循环中,您正在执行$xls->addRow($subvalue)
,它会继续添加所有电子邮件子数组。我认为你应该在外部foreach中调用一些函数但是在内部函数之前调用已经添加到$ xls的行。
这是我能想到的测试运行:
我不确定$ this-&gt; buildXLS()的目的是什么,并且在我上面的解释中忽略了它。
以上是否有意义?