![](/img/trans.png)
[英]csv php mysql data export - all data is being exported in one column
[英]all csv export data is in one column
我有我正在使用的csv導出代碼,但問題是所有數據都在一列中導出到csv上,但我需要數據必須以列分隔,
<?php $results= array(0=>array(name => "anil",agency=>"",phone=>"234235",cname=>"Atleta"),1=>array(name => "anil",agency=>"",phone=>"234235",cname=>"Atleta")); $column = array("name","cname","agency","phone"); $writecolumn = array("Nome do Artista","Categoria","Agencia","Telefone"); $csv_export=''; for($i = 0; $i < count($column); $i++) { $csv_export.= $writecolumn[$i]."\\t" ; } $csv_export.= "\\n"; for($j = 0; $j < count($results); $j++) { for($i = 0; $i < count($column); $i++) { $csv_export.= $results[$j][$column[$i]]."\\t"; } $csv_export.= "\\n"; } $categoryname=$results[0]['cname']; $filename = $categoryname."-Category-Artist-Data.csv"; header('Content-type: application/csv'); header('Content-Disposition: attachment; filename='.$filename); echo $csv_export; exit; ?>
。
使用array_reduce,通過將函數應用於每個元素並將初始值作為第三個參數傳遞,將array減少為單個值,如下所示:
$result= array(0=>array(name => "anil",agency=>"",phone=>"234235",cname=>"Atleta"),1=>array(name => "name_anil",agency=>"agency2",phone=>"234235",cname=>"Atleta_2"));
$csv_export = array_reduce($result, function($acc,$row) {
foreach($row as $key => $value) {
$acc .= $value;
$acc .= "\t";
}
$acc .= "\n";
return $acc;
},
"Nome do Artista\tCategoria\tAgencia\tTelefone\n")
$categoryname=$results[0]['cname'];
$filename = $categoryname."-Category-Artist-Data.csv";
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
echo $csv_export;
exit;
您的代碼的定界符(值分隔符)為'tab'('\\ t')。 可能是您的CSV閱讀軟件需要一些配置才能開始使用'tab'('\\ t')作為分隔符。 我在下面更新了您的代碼,並使用“,”作為分隔符。 Microsoft Excel使用','作為默認分隔符。 請嘗試以下代碼,
<?php $results= array(0=>array('name' => "anil",'agency'=>"",'phone' =>"234235",'cname'=>"Atleta"),1=>array('name' => "anil",'agency'=>"",'phone'=>"234235",'cname'=>"Atleta")); $column = array("name","cname","agency","phone"); $writecolumn = array("Nome do Artista","Categoria","Agencia","Telefone"); $csv_export=''; for($i = 0; $i < count($column); $i++) { $csv_export.= $writecolumn[$i]."," ; } $csv_export.= "\\r\\n"; for($j = 0; $j < count($results); $j++) { for($i = 0; $i < count($column); $i++) { $csv_export.= $results[$j][$column[$i]].","; } $csv_export.= "\\r\\n"; } $categoryname=$results[0]['cname']; $filename = $categoryname."-Category-Artist-Data.csv"; header('Content-type: application/csv'); header('Content-Disposition: attachment; filename='.$filename); echo $csv_export; exit; ?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.