【发布时间】:2017-08-28 10:48:37
【问题描述】:
我得到了这个数组:
array (
'cat' =>
array (
0 =>
array (
'name' => 'Sales',
'url' => 'http://videos.volkswagen.nl/videos/videos/',
'subs' =>
array (
0 =>
array (
'full_url' => 'http://videos.volkswagen.nl/videos/assistentiesystemen/',
'key' => 'assistentiesystemen',
'key_clean' => 'Assistentiesystemen',
'videos' =>
array (
0 =>
array (
'nice_name' => 'Multi Collision braking system',
'vid_url' => 'www.youtube.com/video/3lGfTZdVK1s',
),
1 =>
array (
'nice_name' => 'Lane Assist',
'vid_url' => 'www.youtube.com/video/II68oVm4zro',
),
2 =>
array (
'nice_name' => 'Traffic Jam Assist',
'vid_url' => 'www.youtube.com/video/tCe8Zpz8ceQ',
),
3 =>
array (
'nice_name' => 'Sign assist',
'vid_url' => 'www.youtube.com/video/SypjMPcSWfk',
),
4 =>
array (
'nice_name' => 'Park assist',
'vid_url' => 'www.youtube.com/video/38BbjLmVJXk',
),
5 =>
array (
'nice_name' => 'Front assist',
'vid_url' => 'www.youtube.com/video/kCpQojqZeWE',
),
6 =>
array (
'nice_name' => 'Trailer assist',
'vid_url' => 'www.youtube.com/video/N0fa4dUBkvE',
),
7 =>
array (
'nice_name' => 'Area view',
'vid_url' => 'www.youtube.com/video/6mgDraWpGvE',
),
),
),
1 =>
array (
'full_url' => 'http://videos.volkswagen.nl/videos/comfortsystemen/',
'key' => 'comfortsystemen',
'key_clean' => 'Comfortsystemen',
'videos' =>
array (
0 =>
array (
'nice_name' => 'Gesture Control',
'vid_url' => 'www.youtube.com/video/bOejnFiC88E',
),
1 =>
array (
'nice_name' => 'ACC Adaptive Cruise Control',
'vid_url' => 'www.youtube.com/video/W5L75iR4ySw',
),
2 =>
array (
'nice_name' => 'Rear View',
'vid_url' => 'www.youtube.com/video/v272JxYMjlo',
),
3 =>
array (
'nice_name' => 'Hill Hold',
'vid_url' => 'www.youtube.com/video/IzZFSp0Z8ZQ',
),
4 =>
array (
'nice_name' => 'Dynamic Light Assist',
'vid_url' => 'www.youtube.com/video/mRWEdXZYcio',
),
),
),
);
我想将所有数据转换为 csv 文件。问题是,由于所有子数组,我似乎无法让它工作。
这是我尝试过的:
header("Content-Disposition: attachment; filename=\"demo.xls\"");
header("Content-Type: application/vnd.ms-excel;");
header("Pragma: no-cache");
header("Expires: 0");
$out = fopen("php://output", 'w');
foreach ($result as $data)
{
$finalResult = [];
array_walk_recursive($data, function($item) use (&$result) {
$finalResult[] = $item;
});
fputcsv($out, $finalResult,"\t");
}
fclose($out);
这就是我希望 csv 文件在 excel 中的样子:
知道我怎样才能让它工作吗?任何帮助将不胜感激。
【问题讨论】:
-
您能否更新问题以显示您期望的一行 CSV 输出?您希望如何将多维数据折叠成二维?
-
此外,如果您向我们展示
var_export()而不是print_r(),我们会得到一个数组表示,我们可以复制/粘贴并轻松测试我们的答案。我们这些不屑于测试我们的答案的人 -
添加了一个例子@mkaatman
-
编辑@RiggsFolly
-
CSV 是逗号分隔值。每行一条记录。我在您的输出示例中没有看到任何逗号,而且它看起来不像我见过的任何 CSV。
标签: php arrays csv multidimensional-array export-to-csv