我想将数组转换为 csv,我能够将关联数组转换为 csv。
但无法获取标题。
我想要动态地将数字类型日期作为标题
下面是我转换的数组。
Array
(
[0] => Array
(
[NUMBER] => 67
[TYPE] => Other
[DATE] => 3/31/2011
)
[1] => Array
(
[NUMBER] => 87
[TYPE] => something
[DATE] => 3/28/2011
)
[2] => Array
(
[NUMBER] => 67
[TYPE] => Other
[DATE] => 3/2/2011
)
)
代码如下。但无法获取标头,但其值即将到来。
<?
$fp1 = fopen('file.csv', 'w');
foreach ($arr2 as $fields)
{
fputcsv($fp1, $fields);
}
fclose($fp1);
?>
只需使用array_keys http://php.net/array_keys获取密钥并将其写入文件。
fputcsv($han, array_keys($arr[0]));
foreach ($arr as $a) { ... }
这假设您有一个数字数组(并且假设它不为空)。如果arr[0]
不保证被设置,您可以使用array_shift http://php.net/array_shift or array_slice http://php.net/array_slice提取第一个元素。 (或者,您可以在循环中设置一个标志,指示标头是否已写入 - 只需将其默认为 false。如果不是 true,请将其设置为 true 并打印标头。)
当我这样做的时候,你可以使用array_combine http://php.net/array_combine走向相反的方向(CSV 到关联数组的数组)。
$data = array();
$header = fgetcsv($han);
while (($row = fgetcsv($han)) !== false) {
$data[] = array_combine($header, $row);
}
(请注意,这假设您没有空白行 - 将返回空白行array()
这将向联合收割机发出警告,并将无意义的内容放入data
.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)