您当前所做的是循环源文件,在第一次迭代中是“test.txt”,然后循环目标数组并执行复制功能 2 次:
folder1/test.txt 的第一次迭代
- 复制(“文件夹1/test.txt”,“文件夹2/test.txt”);
- 复制(“文件夹1/test.txt”,“文件夹2/test2.txt”;
文件夹 1/test2.txt 的第二次迭代:
- 复制(“文件夹1/test2.txt”,“文件夹2/test.txt”);
- 复制(“文件夹1/test2.txt”,“文件夹2/test2.txt”;
最后,您已经用 $source 数组中的最后一个文件覆盖了这两个文件。所以“folder2”中的两个文件都包含test2.txt的数据
您正在寻找的是:
foreach($sourcefiles as $key => $sourcefile) {
copy($sourcefile, $destinations[$key]);
}
在上面的例子中,$sourcefile 等于 $sourcefiles[$key]。
这是基于 PHP 自动为您的值分配键的事实。$sourcefiles = array('file1.txt', 'file2.txt'); 可以用作:
$sourcefiles = array(
0 => 'file1.txt',
1 => 'file2.txt'
);
另一种选择是在 for 循环中使用其中一个数组的长度,它的作用相同,但方式不同:
for ($i = 0; $i < count($sourcefiles); $i++) {
copy($sourcefiles[$i], $destinations[$i]);
}