Экспорт многомерного массива в CSV-документ в Symfony

Существует такой многомерный массив (с 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));
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector