Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 - Fatal编程技术网

Php 写入CSV-逐列而不是逐行

Php 写入CSV-逐列而不是逐行,php,Php,我熟悉创建CSV,然后通过使用诸如fputcsv之类的函数或使用fwrite手动向其添加行。即: fwrite($fh, $facility . "\r\n"); fwrite($fh, $s . " - " . $e . "\r\n"); fwrite($fh, "\r\n"); fwrite($fh, "\r\n"); foreach ($first_column as $f){ fwrite($fh, $f . "," . "\r\n"); } 我的$first\u列数组类

我熟悉创建CSV,然后通过使用诸如
fputcsv
之类的函数或使用
fwrite
手动向其添加行。即:

fwrite($fh, $facility . "\r\n");
fwrite($fh, $s . " - " . $e . "\r\n");

fwrite($fh, "\r\n");
fwrite($fh, "\r\n");


foreach ($first_column as $f){
    fwrite($fh, $f . "," . "\r\n");
}
我的
$first\u列
数组类似于:

$first_column = array(
        'Chocolate Milk',
        'White Milk',
        'Orange Juice',
        'Apple Juice',
);
它会创建一个类似以下内容的文件:

West Middle School
5/1/2013 - 5/3/2013


Chocolate Milk,
White Milk,
Orange Juice,
Apple Juice,
$second column['05/01/2013'] = array(5,3,2,2);
$third column['05/02/2013'] = array(5,1,3,5);
我想根据日期在下一个字段中添加数据。数据将类似于此:

West Middle School
5/1/2013 - 5/3/2013


Chocolate Milk,
White Milk,
Orange Juice,
Apple Juice,
$second column['05/01/2013'] = array(5,3,2,2);
$third column['05/02/2013'] = array(5,1,3,5);
然后我可以循环遍历每个日期,并将值与
$first\u列
映射匹配

这能做到吗?或者我必须逐行写入数据,如:

$data_row['chocolate milk'] = array(5,5,3,6);
$data_row['white milk'] = array(3,1,5,0);
我想要的CSV是这样的:

West Middle School
5/1/2013 - 5/3/2013

,5/1/2013,5/2/2013
Chocolate Milk,5,5
White Milk,3,1
Orange Juice,2,3
Apple Juice,2,5

您可以在程序中以列为单位保存数据。但以这种方式将它们写入文件并不是最优的。最好是在内存中创建csv结构,然后按行顺序存储


但是,您可以将它们逐列存储。只需先写。关闭文件。重新打开文件,逐行加载,并附加到每行末尾的第二列。这将为您创建新的“线”。将其写入新文件。。。。重复这个直到完成。这是程序的最快解决方案,如果你想一个接一个地编程的话。当然,这种方法的效率很低

你应该明确你到底想做什么。在所需更改之前和之后提供一个CSV示例将有助于更好地理解。按列编写将意味着在文件中大量跳转和大量复杂的代码。将数据合并在一起,这样就可以写行了。谢谢Martin。这就是我要找的。我知道你问题的后半部分,但不确定是否有其他方法来解决我的问题。