-2

我有一个数组进入一个看起来像这样的函数:

$array = array(
    'SomeKey' => array()
    'SomeOtherKey' => array()
);

我希望 csv 文件在 excel 中打开时看起来像:

SomeKey

---- rows of data -----

SomeOtherKey

---- Rows of Data ---

我写的函数只处理这个问题的数组:

$array = array(array(...));


public function createCvsObject($array, $name = 'report.csv'){       
    $this->headers($name);
    if (count($array) == 0) {
        return null;
    }

    $df = fopen("php://output", 'w');
    fputcsv($df, array_keys(reset($array)));

    foreach ($array as $row) {
        fputcsv($df, $row);
    }

    fclose($df);
}

我必须改变什么才能得到我想要的预期输出?

4

2 回答 2

1

如果对您有帮助,可以尝试以下代码:

fputcsv($df, 'somekey');

foreach ($array['somekey'] as $row) {
    fputcsv($df, $row);
}

fputcsv($df, 'someOtherkey');

foreach ($array['someOtherkey'] as $row) {
    fputcsv($df, $row);
}
于 2013-10-23T18:42:16.000 回答
0

从外观上看,您只是缺少关键行。否则,请编辑您的问题以说明您的代码有什么问题、您得到什么输出、您期望什么输出等。

foreach ($array as $key => $row) {
    fwrite($df, $key);
    fputcsv($df, $row);
}
于 2013-10-23T18:33:21.313 回答