我不知道问题是什么。除了$ scanDir之外,一切都被定义了吗?它是函数的一部分,因此它的值在被调用时传递。这应该不是原因。
for ($a = 0; $a <= count($scanListArrayOrig); $a++) {
rename($scanDir . '/' . $scanListArrayOrig[$a], $scanDir . '/' . $scanListArrayNew[$a]);
}
答案 0 :(得分:1)
将<=
替换为<
。
for ($a = 0; $a < count($scanListArrayOrig); $a++) {
rename($scanDir . '/' . $scanListArrayOrig[$a], $scanDir . '/' . $scanListArrayNew[$a]);
}
在这里演示:http://ideone.com/yvvAxL
答案 1 :(得分:0)
使用foreach并检查现有密钥的新数组:
foreach($scanListArrayOrig as $key => $file) {
if(false === array_key_exists($key, $scanListArrayNew)) {
//new filename not existing in array
}
else {
rename($scanDir.'/'.$file, $scanDir.'/'.$scanListArrayNew[$key]);
}
}