Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中多维不规则数组到CSV_Php_Arrays_Csv - Fatal编程技术网

PHP中多维不规则数组到CSV

PHP中多维不规则数组到CSV,php,arrays,csv,Php,Arrays,Csv,首先,我知道有很多线程专门用于这个主题,但我没有找到/想出解决我的问题的正确方法,如果我错过了一些东西,很抱歉。 我得到了一个如下的数组: Array ( [0] => id1 [1] => Array ( [0] => Url1 ) [2] => id2 [3] => no url found [4] => id3 [5] => Array ( [0] => url3.1

首先,我知道有很多线程专门用于这个主题,但我没有找到/想出解决我的问题的正确方法,如果我错过了一些东西,很抱歉。 我得到了一个如下的数组:

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

但它只捕获子阵列中的元素(如果存在)。我应该怎么做?提前谢谢

我建议从原始数组创建一个中间数组,该数组将具有所需的结构,然后从该数组创建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, ',');
}
//预处理数组以获取CSV输出所需的格式
对于($i=0;$i

看到它继续运行。

谢谢,这就成功了,现在我想知道如何首先获得这个数组的构建,因为它是这样构建的:
array\u push($array,$item[2],$g)
其中,
$item
是一个数组,包含作为第三个对象的URL,
$g
是一个数组,该数组具有上一个
preg\u match\u all
中的匹配项。那么,您认为有什么方法可以更好地构建$array呢?谢谢你的帮助!