Экспорт данных массива php в CSV или Excel - PullRequest
0 голосов
/ 28 ноября 2018

Переменная $ 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 Ответ

0 голосов
/ 28 ноября 2018

Я использовал больше переменных, чтобы их было легко понять.Вы можете уменьшить их, и вы можете заменить printf и echo на 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 "...,...,...,...,...,...";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...