douping7975 2018-09-22 15:12
浏览 183
已采纳

使用php在csv文件中连续添加2列

I'm trying to have 2 columns in every row in a csv file using php, but I only get one column, can anyone see what I'm doing wrong, any help would be appreciated.

        $csvLinks = array();

        if ($this->request->isPost()) {
            $csvLinks = $this->request->data['csvLinks'];
        }

        $col = array();
        for($i=0; $i<count($csvLinks); $i+=2) {
            array_push($col, $csvLinks[$i]);
            array_push($col, $csvLinks[$i+1] .",");
        }

       foreach($col as $row) {
           fputcsv($fp, explode(',',$row));
       }

the result I'm getting looks like the following

enter image description here

  • 写回答

1条回答 默认 最新

  • duandeng7132 2018-09-22 15:31
    关注

    When you want to have multiple columns in a single line, you have to have an array per line. So you have to have an array(columns) inside an array (lines).

    Do it like this:

    $csvLinks = array();
    
            if ($this->request->isPost()) {
                $csvLinks = $this->request->data['csvLinks'];
            }
    
            $lines = array();
            for($i=0; $i<count($csvLinks); $i+=2) {
                // Make a columns array
                $col = array();
                // Push the values inside the columns array
                array_push($col, $csvLinks[$i]);
                array_push($col, $csvLinks[$i+1]);
                // push the columns array inside the $lines array
                array_push($lines, $col);
            }
    
           foreach($lines as $line) {
               fputcsv($fp, $line);
           }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?