PHP数组转换为CSV?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (90)

这是我的代码:

for($i=0;$i<count($prods);$i++) {
$sql = "SELECT * FROM products WHERE id = '".$prods[$i]."'";
$result = $mysqli->query($sql);
$info = $result->fetch_array(); 
}

$header = '';

for($i=0;$i<count($info);$i++)  
  {
    $row = $info[$i];

    $line = '';
    for($b=0;$b<count($row);$b++)
    { 
    $value = $row[$b];                                      
        if ( ( !isset( $value ) ) || ( $value == "" ) )
        {
            $value = "\t";
        }
        else
        {
            $value = str_replace( '"' , '""' , $value );
            $value = '"' . $value . '"' . "\t";
        }
         $line .= $value;
        }
    $data .= trim( $line ) . "\n";
}
$data = str_replace( "\r" , "" , $data );

if ( $data == "" )
{
$data = "\n(0) Records Found!\n";                        
}

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=your_desired_name.xls");
header("Pragma: no-cache");
header("Expires: 0");

array_to_CSV($data);


function array_to_CSV($data)
    {
        $outstream = fopen("php://output", 'r+');
        fputcsv($outstream, $data, ',', '"');
        rewind($outstream);
        $csv = fgets($outstream);
        fclose($outstream);
        return $csv;
    }

还有更好的办法吗?

提问于
用户回答回答于
用户回答回答于
$num =0; $sql ="SELECT id, name, description FROM products";if($result = $mysqli->query($sql)){while($p = $result->fetch_array()){          $prod[$num]['id']= $p['id'];          $prod[$num]['name']= $p['name'];          $prod[$num]['description']= $p['description'];          $num++;}} $output =fopen("php://output",'w') or die("Can't open php://output");header("Content-Type:application/csv");header("Content-Disposition:attachment;filename=pressurecsv.csv");fputcsv($output,array('id','name','description'));foreach($prod as $product){fputcsv($output, $product);}fclose($output) or die("Can't close php://output");

扫码关注云+社区

领取腾讯云代金券