php将数组保存为文件中的新列

时间:2013-11-08 06:45:31

标签: php arrays csv

有没有办法将数组的内容保存为现有文件中的新列?

我的数组$total_sum

Array
(
  [0] => 2318
  [1] => 392
  [2] => 753
  [3] => 555
)

添加到现有file.tsv

id   type   sum
152  new    2318
998  new    392
556  old    753
281  new    555

我试过了:

foreach($total_sum as $val) {
  fwrite('/var/file.tsv', $val);
}

但它一直给我一个关于类型流的错误。只是想检查这是否可以在PHP中?如果它没有包含在数组中,你如何添加列标题'sum'? <困惑>非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您需要先读取文件的旧内容,这样才能将新列附加到每一行。

$filename = '/var/file.tsv';
$orig = file($filename, FILE_IGNORE_NEW_LINES);
$fp = fopen($filename, 'w');
foreach ($orig as $i => $line) {
    fwrite($fp, "$line\t{$total_sum[$i]}\n";
}

如果文件的标题行与您在示例中显示的一样,则应将sum标题放在$total_sum中以使其保持同步,或将其拼接出$orig并且专门处理那条线。

答案 1 :(得分:0)

fopen首先提交了文件吗?

$f = fopen('/var/file.tsv', 'a');

foreach($total_sum as $val) {
    fwrite($f, $val);
}

fclose($f);