-1

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

我的数组$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”不包含在数组中,您将如何添加它?<困惑> 将不胜感激任何帮助!

4

2 回答 2

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并专门处理该行。

于 2013-11-08T06:55:25.437 回答
0

你是fopen先报的吗?

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

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

fclose($f);
于 2013-11-08T06:50:56.517 回答