PHP中的多维不规则数组到CSV

时间:2017-07-09 20:20:20

标签: php arrays csv

首先,我知道有很多主题致力于这个主题,但我没有找到/找到解决我问题的正确解决方案,对不起,如果我错过了什么。 所以我有一个看起来像这样的数组:

Array
(
[0] => id1
[1] => Array
    (
        [0] => Url1
    )

[2] => id2
[3] => no url found
[4] => id3
[5] => Array
    (
        [0] => url3.1
        [1] => url3.2
        [2] => url3.3
     )
)

我希望构建一个类似于:

的csv
id1,url1
id2,no url found
id3,url3.1,url3.2,url3.3

尝试了

foreach($array as $row){
   fputcsv($csv, $row, ',');
}

但它只捕获子数组的元素(如果它们存在)。我应该怎么做?提前致谢!

1 个答案:

答案 0 :(得分:2)

我建议从原始数组中创建一个具有所需结构的中间数组,然后从中创建CSV输出:

// Preprocess the array to get the format needed for the CSV output
for ($i = 0; $i < count($array); $i += 2) {
    $result[] = is_array($array[$i+1])
        ? array_merge([$array[$i]], $array[$i+1])
        : [$array[$i], $array[$i+1]];
}

foreach($result as $row){
   fputcsv($csv, $row, ',');
}

eval.in上看到它。