【问题标题】:multidimensional irregular array to CSV in PHPPHP中的多维不规则数组到CSV
【发布时间】:2023-03-25 20:29:01
【问题描述】:

首先,我知道有很多专门讨论这个主题的主题,但我没有找到/想出解决我的问题的正确方法,如果我遗漏了什么,请见谅。 所以我得到了一个看起来像这样的数组:

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, ',');
}

但它只抓取子数组的元素(如果它们存在)。我应该如何处理?提前致谢!

【问题讨论】:

    标签: php arrays csv


    【解决方案1】:

    我建议从原始数组创建一个具有所需结构的中间数组,然后从中创建 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 上运行。

    【讨论】:

    • 谢谢,成功了,现在我想知道如何首先获得这个数组构建,因为它是这样构造的:array_push($array, $item[2], $g) 其中$item 是一个包含urls 作为第三个对象,$g 是一个数组,它与之前的preg_match_all 匹配。那么,您是否首先看到了更好地构造 $array 的任何方法?感谢您的帮助!
    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    相关资源
    最近更新 更多