Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将阵列导出到csv_Php_Arrays_Csv - Fatal编程技术网

Php 如何将阵列导出到csv

Php 如何将阵列导出到csv,php,arrays,csv,Php,Arrays,Csv,我想将此数组转换为csv导出文件。我尝试过这样的代码 ["Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:22, GENDER:MALE, Age:63,Bp_Systolic:120,Bp_Diastolic:80", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:27

我想将此数组转换为csv导出文件。我尝试过这样的代码

["Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:22, GENDER:MALE, Age:63,Bp_Systolic:120,Bp_Diastolic:80", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:27, GENDER:FEMALE, Age:56,Bp_Systolic:110,Bp_Diastolic:70", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:33, GENDER:MALE, Age:58,Bp_Systolic:130,Bp_Diastolic:70", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:48, GENDER:FEMALE, Age:62,Bp_Systolic:132,Bp_Diastolic:80", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:50, GENDER:MALE, Age:60,Bp_Systolic:120,Bp_Diastolic:70", "Boxname:MH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:51, GENDER:MALE, Age:63,Bp_Systolic:118,Bp_Diastolic:62"]


但是我不能得到数据。有人能帮我吗。我试过很多方法。我认为我的数组格式有问题。任何人都可以从中建议数组格式,以方便导出。

这是一个有效解决方案的示例,您可以将其用作基础:

<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');

// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');

// output the column headings
fputcsv($output, array('Column 1', 'Column 2', 'Column 3'));

$list=$name;
foreach ($list as $line)
  {
fputcsv($output, $line);
  }

?>
$maxSize=count($commentArray);
对于($c=0;$c<$maxSize;$c++){
$toCSV.=$nameArray[$c]。”;“$amountArray[$c]。”;“$dateArray[$c]。”;“$commentArray[$c]。”;“$bankaccount[$c]。”\n”;
}
文件内容($file$toCSV);
它循环遍历数组的所有元素,通过
分隔值s,当到达最后一个元素时,它会放置一个新行分隔符


将其作为一个整体连接后,文件内容将创建一个CSV文件

您正在将一个串接的值作为行传递给
fputcsv()
,其中它希望每列都有一个数组元素。您的数据应拆分为每行的列值数组,即:

$maxSize = count($commentArray);

    for ($c=0; $c < $maxSize; $c++) {
        $toCSV .= $nameArray[$c] . ";" . $amountArray[$c] . ";" . $dateArray[$c] . ";" . $commentArray[$c] . ";" . $bankaccount[$c] . "\n";
    }

file_put_contents($file, $toCSV);       
更改此阵列是解决此问题的方法。如果无法更改数组的创建方式,则始终可以使用
array\u map()
将其重新映射为
fputcsv()
所期望的格式:


$name实际上是数组还是字符串?请检查此链接@markbaker its a array可能会有所帮助。实际上$name[0]=“Boxname:HH,X1:53.3,X2:106.6,Y1:33.30000000004,Y2:59.947215189873425,PID:22,性别:男性,年龄:63,收缩压:120,舒张压:80”;您显示的数据是一个数组,其中只有一个元素包含一个长文本值。这与数据中的任何“特殊字符”无关,
fputcsv
已经做得非常好了。嘿,感谢您的解释。这个密码有效吗?如果你不介意的话,你可以用一件事来澄清我。实际上,我将数据从javascript数组发送到php。使用此代码
$.post(“export.php”,{name:patient_数组,header:header}).done(函数(数据){alert(“数据加载:”+data);document.location.href='export.php';})fputcsv()
并产生错误之前,一定要检查数组。是的,我认为我的数组有问题。我正在努力解决这个问题
$list = Array(
    Array("Boxname:HH", "X1:53.3", "X2:106.6", "Y1:33.300000000000004", "Y2:59.947215189873425", "PID:22", "GENDER:MALE", "Age:63", "Bp_Systolic:120", "Bp_Diastolic:80"),
    Array("Boxname:HH", "X1:53.3", ..)
    //etc
)
$list = ["Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:22, GENDER:MALE, Age:63,Bp_Systolic:120,Bp_Diastolic:80", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:27, GENDER:FEMALE, Age:56,Bp_Systolic:110,Bp_Diastolic:70", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:33, GENDER:MALE, Age:58,Bp_Systolic:130,Bp_Diastolic:70", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:48, GENDER:FEMALE, Age:62,Bp_Systolic:132,Bp_Diastolic:80", "Boxname:HH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:50, GENDER:MALE, Age:60,Bp_Systolic:120,Bp_Diastolic:70", "Boxname:MH, X1:53.3, X2:106.6, Y1:33.300000000000004,Y2:59.947215189873425, PID:51, GENDER:MALE, Age:63,Bp_Systolic:118,Bp_Diastolic:62"];

$list = array_map(function($i){
    return array_map("trim", // Trim the values
        explode(",", $i) // Explode each row into an array of column values
    );
}, $list);

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');

$output = fopen('php://output', 'w');

fputcsv($output, array('Column 1', 'Column 2', 'Column 3'));

foreach ($list as $line) {
    fputcsv($output, $line);
}