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

使用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

图片转代码服务由CSDN问答提供 功能建议

我正在尝试使用php在csv文件的每一行中有2列,但我只获得一列 ,任何人都可以看到我做错了什么,任何帮助都会受到赞赏。

  $ csvLinks = array(); 
 
 if if($ this-&gt; request)  - &gt; isPost()){
 $ csvLinks = $ this-&gt; request-&gt; data ['csvLinks']; 
} 
 
 $ col = array(); 
 for($ i =  0; $ i&lt; count($ csvLinks); $ i + = 2){
 array_push($ col,$ csvLinks [$ i]); 
 array_push($ col,$ csvLinks [$ i + 1]。“,  “); 
} 
 
 foreach($ col as $ row){
 fputcsv($ fp,explode(',',$ row)); 
} 
    
 
 

我得到的结果如下所示

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

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);
           }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题