在php中将2d数组插入csv文件

在php中将2d数组插入csv文件,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我正在尝试将2d数组插入csv文件 下面是我的代码 <?php $cars = array( array("Volvo",100,96), array("BMW",60,59), array("Toyota",110,100)); $fp = fopen('file.xls', 'w'); foreach ($cars as $fields) { fputcsv($fp, $fields); } fclose($fp); ?> 但这些值插入csv文件中的单行中 任何想法

我正在尝试将2d数组插入csv文件

下面是我的代码

<?php
$cars = array( array("Volvo",100,96), array("BMW",60,59), array("Toyota",110,100));
$fp = fopen('file.xls', 'w');
foreach ($cars as $fields) {
    fputcsv($fp, $fields);
}
fclose($fp);
?>

但这些值插入csv文件中的单行中


任何想法

你都需要用逗号将内容分隔开,以便在不同的行中书写

$export_arr =$_POST['dataString'];
$fp = fopen('file.xls', 'w');
foreach ($export_arr as $fields) {
    fputcsv($fp, $fields,",");
}
fclose($fp);
编辑1: 此版本将其保存到文件中,而不提示保存,并在带有轻微边框的表中输出。表中的边框未写入文件,它仅输出到屏幕

<?php

$fp = fopen('file.xls', 'w');
$cars = array( array(Volvo,100,96), array(BMW,60,59), array(Toyota,110,100));
$titleArray = array_keys($cars[0]);
$delimiter = "\t";
$filename="file.xls";
 
//Loop through each subarray, which are our data sets
foreach ($cars as $subArrayKey => $subArray) {
    //Separate each datapoint in the row with the delimiter
    $dataRowString = implode($delimiter, $subArray);

//  print $dataRowString . "\r\n"; // prints output to screen

fwrite($fp, $dataRowString . "\r\n");

} // keep this always end of routine

// start of cell formatting

$row = 1;
if (($handle = fopen("file.xls", "r")) !== FALSE) {
   
    echo '<table border="1" cellspacing="0" cellpadding="3">';
   
    while (($data = fgetcsv($handle, 1000, '\t')) !== FALSE) {
        $num = count($data);
        if ($row == 1) {
            echo '<thead><tr>';
        }else{
            echo '<tr>';
        }
       
        for ($c=0; $c < $num; $c++) {
            //echo $data[$c] . "<br />\n";
            if(empty($data[$c])) {
               $value = "&nbsp;";
            }else{
               $value = $data[$c];
            }
            if ($row == 1) {
                echo '<th>'.$value.'</th>';
            }else{
                echo '<td align="center">'.$value.'</td>';
            }
        }
       
        if ($row == 1) {
            echo '</tr></thead><tbody>';
        }else{
            echo '</tr>';
        }
        $row++;
    }
   
    echo '</tbody></table>';
    fclose($handle);
}

?>



编辑2: 此版本将处理数据,然后提示保存文件

输出:

Volvo 100 96 BMW 60 59 Toyota 110 100 沃尔沃100 96 宝马60 59 丰田110 100 PHP代码:



第1版: 输出将为:

Volvo 100 96 BMW 60 59 Toyota 110 100 沃尔沃
100
96
宝马
60
59
丰田
110
一百

如果这是期望的结果,那么这就是实现这一点的代码:

<?php

$cars = array( array(Volvo,100,96), array(BMW,60,59), array(Toyota,110,100));

$fp = fopen('file.xls', 'w');

foreach ($cars as $fields) {

    fputcsv($fp, $fields, "\n");

}
fclose($fp);
?>


什么是
$export\u arr
看起来像$export\u arr是2d数组值谢谢您的回复。当我执行时,我得到了错误(解析错误:解析错误,在第4行C:\wamp\www\export\some.php中应为“)”@Max25将
$export\u arr作为$fields
更改为
$cars作为$fields
@Max25看看我下面的答案。我不确定这是否是您要查找的结果。我在执行代码时出错(解析错误:Parse error,在第4行的C:\wamp\www\export\some.php中应为“'))”)大小写分隔符是否有默认值
,因此这不是答案。Yam将数组名称$export\u arr更改为$cars,但仍然出现错误(警告:fputcsv()希望参数2是数组,字符串在第5行C:\wamp\www\export\some.php中给出)谢谢dude,但问题是我需要在每个单独的单元格中插入值。数组内部(cars[0]值)是单页插入的吗cell@Max25好的,让我看看我能做些什么。谢谢你的回复。我更改了你代码中的输出格式。我需要csv文件中单独的单元格中的输出。谢谢fred。但是我需要输出一个沃尔沃100 96,在同一行中,但每个值都要插入csv文件中的每个单元格。@Max25不客气。我找到了另一种可能是您正在查找的内容,但它将处理数据,然后提示保存文件。将在我的编辑中包含代码。@Max25不客气。哦,如果您想查看,我提供了另一个版本。它将数据保存到文件,而不提示保存并输出到表中。表中的边框不会写入文件,它只输出到屏幕N