在 PHP 中使用 fputcsv 水平移动指针


Move pointer horizontally using fputcsv in PHP

我正在尝试使用 fputcsv 将 2 个数组写入 csv 文件。

但问题是在写入第二个数组时,它会转到文件的末尾并从那里开始。

所以基本上我有这两个部分要写在一个csv文件中,它以以下方式编写

ID      Name1
1       AAA
2       BBB
Name2
CCC
DDD

我想要什么

ID      Name1      Name2
1       AAA        CCC
2       BBB        DDD

我的代码是

fputcsv($fh, array("ID","Name1"));
while($row = mysqli_fetch_array($weekly1, MYSQLI_NUM))
{
    fputcsv($fh, array($row[0],$row[1]));
}
fputcsv($fh, array("Name2"));
while($row = mysqli_fetch_array($weekly2, MYSQLI_NUM))
{
    fputcsv($fh, array($row[1]));
}

有没有办法克服这个问题。非常欢迎任何帮助或建议。提前谢谢。

首先,您应该将IDNAME1存储在数组中,并且只有在获得NAME2保存到csv之后:

fputcsv($fh, array("ID","Name1","Name2"));
$rows = array();
while($row = mysqli_fetch_array($weekly1, MYSQLI_NUM))
{
    $rows[] = array($row[0],$row[1]));
}
$i = 0;
while($row = mysqli_fetch_array($weekly2, MYSQLI_NUM))
{
    fputcsv($fh, array_merge($rows[$i], array($row[1])));
    $i++;
}