【问题标题】:Exporting multiple dynamic array data to a CSV file in PHP在 PHP 中将多个动态数组数据导出到 CSV 文件
【发布时间】:2016-01-05 00:22:46
【问题描述】:

我的目标是生成一个转换为偶数、奇数和斐波那契的数字列表。但是,我想将屏幕上生成的数字的结果导出到 CSV 文件。我想将所有动态结果存储在一个数组中以传递给导出函数。我的导出适用于静态数组数据,但我的挑战是如何将多个动态数组数据存储在一个数组中以传递给导出函数。

如何将函数调用的数组结果存储在$content数组中?

$content = array($evenNumbers,$oddNumbers,$fibonacci);

> <?php
> 
>     //request form actions using hidden form field
>     $job = (!isset($_REQUEST["job"])) ? '' : trim($_REQUEST["job"]);
> 
>     $export = (!isset($_REQUEST["export"])) ? '' : trim($_REQUEST["export"]);
> 
>     $evenNumbers = array();
> 
>     $oddNumbers = array();
>     $fibonacci = array();
>     $file = new FileDataClass();
> 
>     //performed when user click upload button
>     if ($job == "uploadFile") {
>         
>         //get file from file upload in form 
>         $file->FileData($_FILES["aNumbers"]);
> 
>         $evenNumbers = $file->GetEvenNumbers();
>         $fibonacci = $file->GetFibonacciNumbers();
>         $oddNumbers = $file->GetOddNumbers();
>     }
> 
> 
>     //performed when user click export button
>     
>     elseif($export == "exportFile"){
> 
> 
> 
> 
>         //get file from file upload in form 
>         $file->FileData($_FILES["aNumbers"]);
> 
>         $evenNumbers = $file->GetEvenNumbers();
>         $fibonacci = $file->GetFibonacciNumbers();
>         $oddNumbers = $file->GetOddNumbers();
> 
>     
> 
>         $content = array($evenNumbers,$oddNumbers,$fibonacci);
> 
>     
>    
>     // csv file name 
>     $filename  = "exportnumbers.csv";
> 
> 
>  
>  
> 
>     //pass file name and array of content to export
>     
>      
>           $file->ExportNumbers($content,$filename);
>     
>     }
>     ...
> 
> ?>

【问题讨论】:

  • 我们不知道FileDataClass 对象是什么或其他调用的函数。另外,我们看不到打印的屏幕输出。什么是数组结构(简单、嵌套等)?请在 csv 中显示当前输出和所需结果。

标签: php export-to-csv


【解决方案1】:

请参阅 fputcsv() 手册http://php.net/manual/en/function.fputcsv.php。 这是来自上述链接的示例。

<?php

    $list = array (
        array('aaa', 'bbb', 'ccc', 'dddd'),
        array('123', '456', '789'),
        array('"aaa"', '"bbb"')
    );

    $fp = fopen('file.csv', 'w');

    foreach ($list as $fields) {
        fputcsv($fp, $fields);
    }

    fclose($fp);
    ?>

【讨论】:

  • 感谢我以正确的方式使用 fputcsv,但我的挑战是在用户提交表单后从屏幕上打印内容。将内容结果传递给导出函数。以这种方式将内容存储在数组中不起作用 $content = array($evenNumbers,$oddNumbers,$fibonacci);
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • @worldofjr,我同意。我还添加了代码,但我刚刚意识到由于某种原因它不可见。如果我进入编辑模式,我可以看到代码。
  • 知道如何访问生成的表单提交以传递给导出功能吗?我有两个 if 语句来监听提交和导出按钮的点击。
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 2023-03-10
  • 2015-04-01
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
相关资源
最近更新 更多