当不存在数据时,php导出到csv正在移动列

当不存在数据时,php导出到csv正在移动列,php,csv,fputcsv,Php,Csv,Fputcsv,我以数组的形式从数据库中获取所有值。由于它是一个巨大的数据库,我只显示两行以供参考 因此,通过执行print\r($data),数组如下所示 现在我想导出为csv。所以我的php代码是这样的 function export_to_csv($data, $filename="data.csv", $delim = ',', $newline = "\n", $enclosure = '' ) { $string_to_export = ''; $c = 0; foreach( $

我以数组的形式从数据库中获取所有值。由于它是一个巨大的数据库,我只显示两行以供参考

因此,通过执行
print\r($data),数组如下所示

现在我想导出为csv。所以我的php代码是这样的

function export_to_csv($data, $filename="data.csv", $delim = ',', $newline = "\n", $enclosure = '' ) {
   $string_to_export = '';
   $c = 0;
   foreach( $data as $row) {
    $string_to_export .= $enclosure.implode($enclosure.$delim.$enclosure, ( $c ? array_values($row) : array_keys($row)) ).$enclosure.$newline; 
    $c++;
    }
        header('Content-type: text/csv;charset=utf-8');
        header('Content-Disposition: attachment; filename='.$filename);
        header("Cache-Control: no-cache");
        //echo "\xEF\xBB\xBF";
    echo $string_to_export;
    exit();
 }
 export_to_csv($data, "data.csv");
现在,当我打开csv时,我看到,如果一行中没有一列的数据,那么下一列只需执行shift向后移动一步。像这样

listing_id    category_id               listing_name        image_name          address          phone

 5975         A la Carte|Bar....        test-chris          SBCTR Logo.jpg      1 surfe parade   1482

 5974         Charlie Lovett            SBCTR Logo.jpg

 5973         Banquet|Champagne Bar    Charlie Lovett       SBCTR_1234 Logo.jpg  1231234567

如您所见,数据正在移动到第2行和第3行的previus列。有人能告诉我怎么解决这个问题吗。对不起,我无法更改数据库。任何帮助和建议都将非常值得赞赏。谢谢

你为什么不继续这里呢?你知道这可以直接用你的数据库完成吗?mySQL的一个例子:@casimirithippolyte抱歉,我无法对数据库进行任何更改????这种方式不需要更改数据库中的任何内容。请尝试将存储模块设置为“”
listing_id    category_id               listing_name        image_name          address          phone

 5975         A la Carte|Bar....        test-chris          SBCTR Logo.jpg      1 surfe parade   1482

 5974         Charlie Lovett            SBCTR Logo.jpg

 5973         Banquet|Champagne Bar    Charlie Lovett       SBCTR_1234 Logo.jpg  1231234567