【发布时间】:2018-04-21 12:31:56
【问题描述】:
我试图找到答案,但我没有成功,请帮助。
我正在尝试通过 preg_match 将 data.txt 中的多行填充到 data.csv 中的单行或列。它需要在单个数组中,因为我只需要唯一的数字。 -> 或任何其他选项只获取唯一的数字
我无法将数组合并为单个数组并将其填充为一个数组到单行。对于任何建议,我都会非常高兴。
这是我的简化代码:
$filename = 'data.txt';
$fupids = array ();
$handle = fopen($filename, "r");
if (!$handle) exit;
while (($line = fgets($handle)) !== false) {
if (preg_match_all('/([0-9]{8})/',$line,$output)) {
$fupid = $output[0];
$file = fopen('data.csv', 'a+');
fputcsv($file, array_unique($output[0]));
}
}
fclose($file);
这是我的简化 data.txt :
10153231,10159512,10159512,10159512
10141703,10160541,10160541
10165815,10158007,10158007
当前 csv 输出:
10153231,10159512
10141703,10160541
10165815,10158007
理想的输出只有一行,或者最好是一列,如下所示:
10153231,10159512,10141703,10160541,10165815,10158007
感谢大家的帮助。
【问题讨论】:
-
您的脚本启动时文件
data.csv是否已经存在?好吧,你想要什么?一行还是一列?另外,输入文件的大小是多少? -
没关系,但是 data.csv 存在并且它是空的。就像我说的那样,不管是一行还是一列,我都会采用这两种解决方案。输入文件的大小是150mb的文本数据日志。如果我能得到这组数据的解决方案,将其转换为1行或1列,我将完全满意。
标签: output row preg-match-all fputcsv array-unique