Что вы сейчас делаете зацикливаетесь на исходниках, которые, в первую itteration являются «test.txt», а затем вы мертвый массив назначения и выполняет функцию копирования 2 раза:
1-й итерацию с folder1/test.txt
- копия ("folder1/test.txt", "folder2/test.txt");
- копия ("folder1/test.txt", "folder2/test2.txt";
второй итерации с Folder1/test2.txt:
- копия ("folder1/test2 .txt», "folder2/test.txt");
- копия ("folder1/test2.txt", "folder2/test2.txt";
В конце концов вы переписаны оба файла последний файл в вашем $ source массиве. Так как файлы в «folder2» содержат данные test2.txt
Что вы ищете будет:
foreach($sourcefiles as $key => $sourcefile) {
copy($sourcefile, $destinations[$key]);
}
$ SourceFile равна $ исходников, [$ ключ] в приведенном выше примере.
Это основано на том факте, что PHP автоматически назначает ключи вашим значениям. $ sourcefiles = array ('file1.txt', 'file2.txt'); могут быть использованы в качестве:
$sourcefiles = array(
0 => 'file1.txt',
1 => 'file2.txt'
);
Другим вариантом является использование длины одного из массивов в цикле, который делает то же самое, но по-другому:
for ($i = 0; $i < count($sourcefiles); $i++) {
copy($sourcefiles[$i], $destinations[$i]);
}
У вас не хватает $ до источника в copy(); –
похоже, что вы пропустили $ там в копии (источник, $ des) –
нет, я пропустил $, но это не проблема: 9 – johnITBonuc