【问题标题】:Grouping and formatting array to write to CSV分组和格式化数组以写入 CSV
【发布时间】:2018-06-14 17:15:21
【问题描述】:

我正在使用 PHP 将数组写入 CSV,但需要一些帮助来格式化数据。目前是:

Array
(
    [YYYY-MM-DD] => Array
        (
            [1] => INT
            [2] => INT
            [3] => INT
        )

    [YYYY-MM-DD] => Array
        (
            [1] => INT
            [2] => INT
            [3] => INT
        )
)

我想写入 CSV,例如:

YYYY-MM-DD, INT, INT, INT
YYYY-MM-DD, INT, INT, INT

【问题讨论】:

  • 你的问题太不完整了。它不提供完整的上下文。贴出你尝试过的代码
  • 您遇到了什么问题?看起来很简单,有几种方法可以做到,只需几行代码。

标签: php arrays csv merge


【解决方案1】:

假设您知道如何将 CSV 写入文件,既然您说过您已经这样做了,那么这里有一种方法可以在写入之前将您的键合并到您的值数组中。

foreach ($array as $date => $ints) {
    fputcsv($file, array_merge([$date], $ints));
}

【讨论】:

    【解决方案2】:

    如果你只是想要一个 PHP 输出(没有真正理解你的 CSV 问题),你可以这样做:

        $arr1 = array("2017-02-12" => array(1 => "INT1", 2 => "INT2", 3 => "INT3"),
                        "2017-04-30" => array(1 => "INT1", 2 => "INT2", 3 => "INT3"),
                        "2017-11-18" => array(1 => "INT1", 2 => "INT2", 3 => "INT3"));
    
    
        foreach($arr1 as $key => $value){
            $ints = "";
            foreach($value as $key2 => $value2){
                $ints = $ints.", ".$value2;
            }
            echo $key.$ints."\n";
        }
    
    // Output : 
    2017-02-12, INT1, INT2, INT3
    2017-04-30, INT1, INT2, INT3
    2017-11-18, INT1, INT2, INT3
    

    在这里演示:https://3v4l.org/mBcWi

    【讨论】:

      猜你喜欢
      • 2016-05-13
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 2023-01-03
      • 2016-10-26
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多