多维数组到CSV [英] Multidimensional array to CSV
本文介绍了多维数组到CSV的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我得到了这个数组:
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文件.问题是,由于所有子阵列,我似乎无法使其正常运行.
I want to convert all of the data to a csv file. The problem is, I can't seem to get it working because of all the sub arrays.
这是我尝试过的:
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中的样子:
This is how I want the csv file to look like in excel:
您知道我如何使它工作吗?任何帮助将不胜感激.
Any idea how I can get this working? Any help will be much appreciated.
推荐答案
这可能就是您想要做的
$out = fopen("tst.csv", 'w');
$finalResult = [];
foreach ($result['cat'] as $sales){
foreach ( $sales['subs'] as $occ => $stuff){
foreach ( $stuff['videos'] as $video ) {
$line = [$sales['name'], $stuff['key'], $video['vid_url'], $video['nice_name'] ];
//$finalResult[] = $a;
fputcsv($out, $line);
}
}
}
//print_r($finalResult);
fclose($out);
哪个生产
Sales,assistentiesystemen,www.youtube.com/video/3lGfTZdVK1s,"Multi Collision braking system"
Sales,assistentiesystemen,www.youtube.com/video/II68oVm4zro,"Lane Assist"
Sales,assistentiesystemen,www.youtube.com/video/tCe8Zpz8ceQ,"Traffic Jam Assist"
Sales,assistentiesystemen,www.youtube.com/video/SypjMPcSWfk,"Sign assist"
Sales,assistentiesystemen,www.youtube.com/video/38BbjLmVJXk,"Park assist"
Sales,assistentiesystemen,www.youtube.com/video/kCpQojqZeWE,"Front assist"
Sales,assistentiesystemen,www.youtube.com/video/N0fa4dUBkvE,"Trailer assist"
Sales,assistentiesystemen,www.youtube.com/video/6mgDraWpGvE,"Area view"
Sales,comfortsystemen,www.youtube.com/video/bOejnFiC88E,"Gesture Control"
Sales,comfortsystemen,www.youtube.com/video/W5L75iR4ySw,"ACC Adaptive Cruise Control"
Sales,comfortsystemen,www.youtube.com/video/v272JxYMjlo,"Rear View"
Sales,comfortsystemen,www.youtube.com/video/IzZFSp0Z8ZQ,"Hill Hold"
Sales,comfortsystemen,www.youtube.com/video/mRWEdXZYcio,"Dynamic Light Assist"
这篇关于多维数组到CSV的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文