Экспорт данных массива php в CSV или Excel

Переменная $ list хранит массив, подобный приведенному ниже.
Мне нужно передать массив в CSV или XLS и отправить заголовки для загрузки файла.

print_r ($ list) отображает следующее:

Array
(
[0] => Array
(
[warehouse] => Array
(
[warehouseName] => Warehouse Europe
[warehouseType] => en detail
)

[products] => Array
(
[0] => Array
(
[productName] => APPAREL SHIRTS
[productCode] => 54059761696
[measuringUnit] => buc
[quantity] => 1
)

[1] => Array
(
[productName] => T-SHIRTS - SADAL
[productCode] => 54059764755
[measuringUnit] => buc
[quantity] => 0
)


........... more data ............


[5315] => Array
(
[productName] => Ski - COLBECK
[productCode] => 54080519051
[measuringUnit] => buc
[quantity] => 3
)



)

)

[1] => Array
(
[warehouse] => Array
(
[warehouseName] => Warehouse US
[warehouseType] => en detail
)

[products] => Array
(
[0] => Array
(
[productName] => T-SHIRTS - SHEW
[productCode] => 40059763901
[measuringUnit] => buc
[quantity] => 5
)

[1] => Array
(
[productName] => SHOESSHOES - OPTIMA
[productCode] => 45063556796
[measuringUnit] => buc
[quantity] => 2
)

........... more data ............

[3178] => Array
(
[productName] => Ski - CASTINE
[productCode] => 40080490213
[measuringUnit] => buc
[quantity] => 1
)

)

)

)

CSV будет выглядеть так в Excel: пример
Я пытался несколько раз, но я не могу справиться с этим. Я думаю, что функция foreach и fputcsv должны сделать свое дело.

///// ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ /////

Это решило это, спасибо!

 foreach($list as $item){
foreach($item['products'] as $product){
$wName = $item['warehouse']['warehouseName'];
$wType = $item['warehouse']['warehouseType'];
$pr =implode(',',$product);
printf("%s,%s,%s".PHP_EOL,$wName,$wType,$pr);
}
}

-1

Решение

я использовал больше переменных, чтобы их было легко понять. Вы можете уменьшить их, и вы можете заменить Printf а также эхо функция с Sprintf или же file_put_content и все, что вы хотите

foreach($list as $item)
{
foreach($item['products'] as $product){
$wName = $item['warehouse']['warehouseName'];
$wType = $item['warehouse']['warehouseType'];
$pr =implode(',',$product);
printf("%s,%s,%s".PHP_EOL,$wName,$wType,$pr);
}
echo "...,...,...,...,...,...";
}
0

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

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

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