在文本文件的新行上写入数组元素


Write array elements on new line in text file

我试图按字母顺序排列,然后从这个数组中删除重复项。然后,我试图将数组中的每个元素写入文本文件中的自己的行。

表示在已排序且唯一的数组中只有一个元素将在一行上。

但是我得到的只是一个空白的文本文件。

如何将数组$sorted_lines的内容写入文本文件,以便每个元素都在新行上?

下面是我的代码:
<?php
$lines = file('american.txt');
$lines = array_walk($lines, 'trim'); 
$sorted_lines = sort(array_unique($lines));
$out = fopen("new.txt", "w");
foreach($sorted_lines as $line){
    $line .= "'n";
    fwrite($out, $line);
}
?>

array_walk()和sort()都是通过引用传递的,对于成功/失败,返回值是布尔值true/false

array_walk($lines, 'trim');
$sorted_lines = array_unique($lines);
sort($sorted_lines);

在函数array_walk()sort()中,第一个参数是通过引用而不是值传递的。这意味着函数直接修改第一个参数,而不是返回结果。array_walk()返回一个布尔值,指示函数是否工作,而不是数组;因此,该功能为设置$lines=1sort()做同样的事情。

在PHP文档中,你可以通过在参数前面加一个&符号来判断参数是通过引用传递的;例如,sort声明如下所示:

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

注意现在第一个参数是&$array,而不是$array。这与在自定义函数中声明引用的方式相同。