我有一个数组,其中包含我必须处理的文件行,数组的每个元素都是文件的一行。处理后,我将文件内爆,写出来并使用它。
当我尝试使用foreach
它时,它没有用。我怀疑它是在创建元素的副本,而不是直接引用元素,因此使用了for
循环,它确实有效。
我的问题是,在这种情况下是否有某种方法可以使用foreach
循环,或者在重新定义数组元素时必须始终使用for
循环?
示例代码:
$fileArray = file('blah.txt');
foreach ($fileArray as $thisLine) {
if ( condition ) {
$thisLine = "changed state";
}
}
$newFileArray = implode('',$fileArray);
没用vs:
$fileArray = file('blah.txt');
for ($x=0;$x<count($fileArray);$x++) {
if ( condition ) {
$fileArray[$x] = "changed state";
}
}
$newFileArray = implode('',$fileArray);
效果很好。