将 php 中的嵌套关联数组转换为 CSV 文件
Turning a nested associative array in php into a CSV file
我正在处理 PHP 问题,并且有一个如下所示的关联数组:
(
[2019-03-22T2:26:03-04:00] => Array
(
[0] => Array
(
[A] => 1
[B] => 1
[C] => 2
)
)
[2019-03-23T2:27:04-04:00] => Array
(
[0] => Array
(
[A] => 1
)
)
)
我正在尝试将此数据转换为如下所示的 CSV:
NAME COUNT
2021-07-15T10:46:16-04:00
A 1
B 1
C 2
2021-07-15T10:46:17-04:00
A 1
我以前做过这个,从数组到 csv,有一个简单的关联数组,但以上面的格式获取它对我来说不起作用。这是我试过的代码:
变量 $statArray 包含我需要在 CSV 上的数组。
$fp = fopen('test.csv', 'w');
foreach ($statArray as $fields)
{
foreach ($key as $v)
{
fputcsv($fp, $v);
}
}
感谢您的帮助。
这是一种奇怪的格式,但您需要编写主数组键,然后获取嵌套的键和值并写入它们:
foreach ($statArray as $date => $array)
{
fputcsv($fp, [$date]); //write main key
foreach ($array as $values)
{
foreach ($values as $name => $count)
{
fputcsv($fp, [$name, $count]); //write key and value
}
}
}
这可能更有意义:
2021-07-15T10:46:16-04:00 A 1
2021-07-15T10:46:16-04:00 B 1
2021-07-15T10:46:16-04:00 C 2
2021-07-15T10:46:17-04:00 A 1
如果是,那么:
foreach ($statArray as $date => $array)
{
foreach ($array as $values)
{
foreach ($values as $name => $count)
{
fputcsv($fp, [$date, $name, $count]); //write date and key and value
}
}
}
无论哪种方式,您都声明了 CSV,但看起来您显示的是制表符而不是逗号。如果是这样,您需要:
fputcsv($fp, [$date, $name, $count], "\t");
我正在处理 PHP 问题,并且有一个如下所示的关联数组:
(
[2019-03-22T2:26:03-04:00] => Array
(
[0] => Array
(
[A] => 1
[B] => 1
[C] => 2
)
)
[2019-03-23T2:27:04-04:00] => Array
(
[0] => Array
(
[A] => 1
)
)
)
我正在尝试将此数据转换为如下所示的 CSV:
NAME COUNT
2021-07-15T10:46:16-04:00
A 1
B 1
C 2
2021-07-15T10:46:17-04:00
A 1
我以前做过这个,从数组到 csv,有一个简单的关联数组,但以上面的格式获取它对我来说不起作用。这是我试过的代码:
变量 $statArray 包含我需要在 CSV 上的数组。
$fp = fopen('test.csv', 'w');
foreach ($statArray as $fields)
{
foreach ($key as $v)
{
fputcsv($fp, $v);
}
}
感谢您的帮助。
这是一种奇怪的格式,但您需要编写主数组键,然后获取嵌套的键和值并写入它们:
foreach ($statArray as $date => $array)
{
fputcsv($fp, [$date]); //write main key
foreach ($array as $values)
{
foreach ($values as $name => $count)
{
fputcsv($fp, [$name, $count]); //write key and value
}
}
}
这可能更有意义:
2021-07-15T10:46:16-04:00 A 1
2021-07-15T10:46:16-04:00 B 1
2021-07-15T10:46:16-04:00 C 2
2021-07-15T10:46:17-04:00 A 1
如果是,那么:
foreach ($statArray as $date => $array)
{
foreach ($array as $values)
{
foreach ($values as $name => $count)
{
fputcsv($fp, [$date, $name, $count]); //write date and key and value
}
}
}
无论哪种方式,您都声明了 CSV,但看起来您显示的是制表符而不是逗号。如果是这样,您需要:
fputcsv($fp, [$date, $name, $count], "\t");