【问题标题】:Why am I getting an undefined offset:124 in this for loop?为什么我在这个 for 循环中得到一个未定义的偏移量:124?
【发布时间】:2013-02-19 07:05:48
【问题描述】:
我不知道问题是什么。除了 $scanDir 之外的所有内容都已定义?它是函数的一部分,所以它的值在调用时传递。这不应该是原因。
for ($a = 0; $a <= count($scanListArrayOrig); $a++) {
rename($scanDir . '/' . $scanListArrayOrig[$a], $scanDir . '/' . $scanListArrayNew[$a]);
}
【问题讨论】:
标签:
javascript
for-loop
undefined
offset
【解决方案1】:
将<= 替换为<。
for ($a = 0; $a < count($scanListArrayOrig); $a++) {
rename($scanDir . '/' . $scanListArrayOrig[$a], $scanDir . '/' . $scanListArrayNew[$a]);
}
在这里演示:http://ideone.com/yvvAxL
【解决方案2】:
使用 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]);
}
}