gpt4 book ai didi

php - 使用 fputcsv 从多维数组创建 CSV

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

我正在尝试将一个多维数组放入一个 csv 文件中。数组中的数据是这样的:

Array
(
[0] => Array
(
[product_id] => 1111
[name] => Alcatel One Touch Idol 2
[keyword] => alcatel-one-touch-idol-2
[options] => Array
(
[0] => Array
(
[price] => 54.0000
)

[1] => Array
(
[price] => 42.0000
)

[2] => Array
(
[price] => 10.0000
)

[3] => Array
(
[price] =>
)

[4] => Array
(
[price] =>
)

[5] => Array
(
[price] =>
)

[6] => Array
(
[price] =>
)

[7] => Array
(
[price] =>
)

[8] => Array
(
[price] =>
)

[9] => Array
(
[price] =>
)

)

)

[1] => Array
(...... etc)

我得到了所有顶级数据,但是一旦它到达选项数组,我就得到了Array to string conversion 错误。所以我有两个问题,我首先需要了解为什么会出现此错误,然后我需要将所有这些信息 fputcsv 到每个产品的一行中。

到目前为止,我已经将数组解析为 csv:

$output = fopen("php://output",'w') or die("Can't open php://output");
header("Content-Type:application/csv");
header("Content- Disposition:attachment;filename=product_catalog.csv");
$first_line = explode(",", $first_line);
fputcsv($output, $first_line);
foreach($csv as $file) {
fputcsv($output, $file);
}
fclose($output) or die("Can't close php://output");

如果有人能帮助我,我将不胜感激。问候。

最佳答案

我建议首先展平每个数组:

foreach ($csv as $file) {
$result = [];
array_walk_recursive($file, function($item) use (&$result) {
$result[] = $item;
});
fputcsv($output, $result);
}

在每次迭代中,它都会创建一个这样的数组:

[1111, 'Alcatel One Touch Idol 2', 'alcatel-one-touch-idol-2', 54, 42, ...]

关于php - 使用 fputcsv 从多维数组创建 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28322751/

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