我有以下三个不同的数组
数组1
array('column1 value1','column1 value2','column1 value3');
数组2
array('column2 value1','column2 value2','column2 value3');
数组3
array('column3 value1','column3 value2','column3 value3');
现在我想在First Value
中的标题为Second Value
,Third Value
,CSV File
的三列中输出,因此我的第一个数组值应在第一个值列中,第二个数组值应在在第二个值列中,依此类推。
我已经搜索了很多,但没有找到任何解决方案。
答案 0 :(得分:1)
为此,您只需要使用fputcsv并遍历数据:
$filename = 'file.csv';
$headings = array( 'First Value', 'Second Value', 'Third Value' );
$array1 = array('column1 value1','column1 value2','column1 value3');
$array2 = array('column2 value1','column2 value2','column2 value3');
$array3 = array('column3 value1','column3 value2','column3 value3');
$fp = fopen( $filename , 'w');
fputcsv( $fp, $headings );
for($i = 0; $i < count($array1); $i++) {
fputcsv( $fp, [ $array1[$i], $array2[$i], $array3[$i] ] );
}
fclose($fp);
答案 1 :(得分:1)
<?php
$array1 = array('column1 value1', 'column1 value2', 'column1 value3');
$array2 = array('column2 value1', 'column2 value2', 'column2 value3');
$array3 = array('column3 value1', 'column3 value2', 'column3 value3');
$headers = array('First Value', 'Second Value', 'Third Value');
$result = array_map(null, $array1, $array2, $array3);
$fp = fopen('file.csv', 'w');
fputcsv($fp, $headers);
foreach ($result as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
一个适用于您的不错的解决方案是在使用array_map
插入所有值并分别插入标题之前,先映射所有值。
以上代码的输出为:
"First Value","Second Value","Third Value"
"column1 value1","column2 value1","column3 value1"
"column1 value2","column2 value2","column3 value2"
"column1 value3","column2 value3","column3 value3"
答案 2 :(得分:0)
您可以使用fputcsv
创建一个csv文件。
<?php
$h = array( 'First Value', 'Second Value', 'Third Value' );
$a1 = array('column1 value1','column1 value2','column1 value3');
$a2 = array('column2 value1','column2 value2','column2 value3');
$a3 = array('column3 value1','column3 value2','column3 value3');
$f = fopen('filename.csv', 'w');
fputcsv($f, $h);
$i=0;
while($i<3)
{
fputcsv( $f, [ $a1[$i], $a2[$i], $a3[$i] ] );
$i++;
}
fclose($f);
?>