使用CSV在列中设置数据

时间:2019-03-19 09:21:04

标签: php arrays csv

我有以下三个不同的数组

数组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 ValueThird ValueCSV File的三列中输出,因此我的第一个数组值应在第一个值列中,第二个数组值应在在第二个值列中,依此类推。

我已经搜索了很多,但没有找到任何解决方案。

3 个答案:

答案 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);
?>