Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用fputcsv水平移动指针_Php_Csv_Fputcsv - Fatal编程技术网

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

在PHP中使用fputcsv水平移动指针,php,csv,fputcsv,Php,Csv,Fputcsv,我正在尝试使用fputcsv将2个数组写入csv文件 但问题是,当写入第二个数组时,它会到达文件的末尾并从那里开始 所以基本上我有这两个部分要写在一个csv文件中,它是以下面的方式写的 ID Name1 1 AAA 2 BBB Name2 CCC DDD 我想要什么 ID Name1 Name2 1 AAA CCC 2 BBB DDD 我的代码是 fputcsv($fh, arr

我正在尝试使用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]));
}

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

首先,您应该将
ID
NAME1
存储在一个数组中,并且只有在获得
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++;
}

很抱歉,我看到了把PHP写成phpAhh的反对票。让我试试。谢谢,伙计。如果可能的话,还可以尝试进行一次SQL查询以获取数据,然后您将只执行一次循环,并且可以立即写入csv。是的,我同意,但情况是,我在制作周报/月报时必须编写多个查询。这很复杂:(