gpt4 book ai didi

php数组到带列标题的csv转换

转载 作者:可可西里 更新时间:2023-10-31 22:19:37 28 4
gpt4 key购买 nike

我想将数组转换为 csv,我可以将关联数组转换为 csv。

但无法获取标题。

我想动态地将 NUMBER TYPE DATE 作为标题

下面是我转换的数组。

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


)

)

下面给出了代码。但是无法获取 header ,但它的值来了。

<?
$fp1 = fopen('file.csv', 'w');

foreach ($arr2 as $fields)
{
fputcsv($fp1, $fields);
}

fclose($fp1);
?>

最佳答案

只需使用 array_keys获取 key 并先将它们写入文件。

fputcsv($han, array_keys($arr[0]));
foreach ($arr as $a) { ... }

这假定您有一个数字数组(并且假定它不为空)。如果arr[0]不保证一定会被设置,可以使用array_shiftarray_slice提取第一个元素。 (或者你可以在你的循环中有一个标志是否已经写入标题 - 只需将它默认为 false。如果它不是真的,将它设置为 true 并打印标题。)


当我在做的时候,你可以使用 array_combine去相反的方向(CSV 到关联数组的数组)。

$data = array();
$header = fgetcsv($han);
while (($row = fgetcsv($han)) !== false) {
$data[] = array_combine($header, $row);
}

(请注意,这假设您没有空白行——空白行将返回 array(),这将发出合并警告并将无意义放入 data.)

关于php数组到带列标题的csv转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16366759/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com