PHP 将数组另存为文件中的新列


php save array as new column in file

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

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

您需要首先读取文件的旧内容,以便可以将新列附加到每一行。

$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中拼接出来并专门处理该行。

你先fopen文件了吗?

$f = fopen('/var/file.tsv', 'a');
foreach($total_sum as $val) {
    fwrite($f, $val);
}
fclose($f);