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);
           }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?