结果数组放入.txt PHP

结果数组放入.txt PHP,php,arrays,Php,Arrays,我已经有了工作的代码,请检查以下内容: while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) { if($h = fopen('file.txt', 'a')) { fputcsv($h,$row); fclose($h); } } 在这种情况下,输出为: 11:11:11:11:11:11 22:22:22:22:22:22 33:33:33:33:33:33 我需要输出为: 11:11:11:11:11:11,22:22:

我已经有了工作的代码,请检查以下内容:

while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {

if($h = fopen('file.txt', 'a')) {

fputcsv($h,$row);

fclose($h);

}
}
在这种情况下,输出为:

11:11:11:11:11:11
22:22:22:22:22:22
33:33:33:33:33:33
我需要输出为:

11:11:11:11:11:11,22:22:22:22:22:22,33:33:33:33:33:33

您可以使用fwrite来代替每次添加换行符的fputcsv:

$h = fopen('file.txt', 'a')
if ($h) {
  $count = 0;
  while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
    if ($count !== 0) {
      fwrite($h, ',');
    }
    fwrite($h, $row);
    $count++;
  }
  fclose($h);
}

它使用内存来存储数据:

if($h = fopen('file.txt', 'a')) {

while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {

$rows[] = join(":", $row);

}

$data = join(",", $rows);

fwrite($h,$data);
fclose($h);

}

请记住,每次有一行数据时,while循环都会迭代。通常,您希望避免打开文件、写入文件、然后关闭文件、打开文件、写入文件、关闭文件等

通常,最好将所有数据聚集在一起,然后编写

此外,fputcsv()仅在单个数组值上放置逗号

解决方案是将所有内容添加到一个数组中,然后运行fputcsv():

注意:您需要将$row['mac']中的'mac'替换为您的mySQL列名


我已经用一个mysql数据库对此进行了测试,它成功地输出(到file.txt):


现在我检查了我的全部代码,文件让我有问题,因为它有一个清晰的行11:11:11:11:11,22:22:22:22,33:33:33:33:33:33:33 2我的意思是我只需要从最后一点退一步。。。你知道怎么解决这个问题吗?
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
    $data[] = $row['mac'];
}

if($h = fopen('file.txt', 'a')) {

    fputcsv($h,$data);

    fclose($h);
}
11:11:11:11:11:11,22:22:22:22:22:22,33:33:33:33:33:33