Php 在Symfony中将多维数组导出到CSV文档

Php 在Symfony中将多维数组导出到CSV文档,php,arrays,symfony,csv,export,Php,Arrays,Symfony,Csv,Export,有这样一个多维数组(n嵌套),通过print\r派生: Array ( [id] => 829 [name] => name surname [info] => Array ( [direct] => 13 [count] => 492 [total] => 108 [asoc] => 4.514 )

有这样一个多维数组(n嵌套),通过print\r派生:

Array
(
    [id] => 829
    [name] => name surname
    [info] => Array
        (
            [direct] => 13
            [count] => 492
            [total] => 108
            [asoc] => 4.514
        )

    [children] => Array
        (
            [0] => Array
                (
                    [id] => 530
                    [name] => name surname2
                    [info] => Array
                        (
                            [direct] => 6
                            [count] => 49
                            [asoc] => 3.267
                            [total] => 14
                        )

                    [_children] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 628
                                    [name] => name surname3
                                    [info] => Array
                                        (
                                            [direct] => 1
                                            [count] => 1
                                            [asoc] => 1
                                            [total] => 0
                                        )

                                    [_children] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [id] => 2
                                                    [name] => Name..
                                                    [info] => Array
                                                        (
                                                            [direct] => 0
                                                            [count] => 0
                                                            [asoc] => 0
                                                        )

                                                    [children] => Array
                                                        (
                                                        )
                                             [1] => Array
                                                     (
                                                    [id] => 3
                                                    [name] => Name..S
                                                    [info] => Array
                                                        (
                                                            [direct] => 1
                                                            [count] => 2
                                                            [asoc] => 1
                                                        )

                                                    [children] => Array
                                                        (
                                                        )
我需要将其写入CSV文件,保持结构(树)。底线是,我尝试了许多方法如何将其写入文件,但由于某些原因,我没有成功(不要严格判断,我是新手)。CSV文档应具有以下结构:

name surname (13, 492, 108,4.514)//в скобках это info из массива                
    name surname2 (6, 49,3.267, 14) 
    name surname3 (1, 1, 1)         
                  name surname4
                  name surname5(1,2,1)   
如果您能提供关于这件事的有用信息(或书籍),我将不胜感激!非常感谢。 我试着这样做:

foreach (new \RecursiveIteratorIterator(new \RecursiveArrayIterator($structureTree)) as $key => $value) {
            fputcsv($file, array($value));
        }
但我收到的是:

829
name surname
13
492
108
4.514
...
Name..S
1
2
1
更新 我试着这样做,但我如何才能使树结构

public function recursive($array, $file)
    {
        foreach ($array as $key => $item) {
            if (is_array($item) && $key === 'info')
                fputcsv($file, $item);
            elseif (is_array($item)) {
                $this->recursive($item, $file);
                fputcsv($file,array('-'));
            }
            elseif ($key == 'id')
                    continue;
                else
                    fputcsv($file, array($item));
        }
    }

嗯,通常你不使用CSV来存储树。。。CSV更好地用于矩阵(二维数组/表)。还有,我们需要看看你试过什么。@Pawamoy,我试过这么做,就像上面提到的一样。但由于我有一个n嵌套的数组,它对我不起作用……你必须写一个函数,写一行(名字、姓氏等),然后在子对象上递归(即,该函数为每个子对象再次调用自己)。@Pawamoy,请你举个例子,我知道如何进行递归,但我不知道如何制作树结构…我没有尝试您的代码,但似乎您已经接近:)在您想要的输出中,您向子级添加缩进。要使用递归函数实现这一点,请添加第三个参数,例如
indent
level
。每次再次调用递归函数时,请提高该级别。当您写入CSV时,请使用该级别了解需要在开头添加多少空单元格!