Roc*_*och 4 php foreach resources for-loop
我正在使用foreach循环来处理大量项目,不幸的是它使用了大量的内存.(可能是因为它正在做一个数组的副本).显然有一种方法可以使用以下代码保存一些内存:$items = &$array;
使用for循环不是更好吗?
有没有办法在foreach循环中处理完每个项目后立即销毁它们.
例如.
$items = &$array;
foreach($items as $item)
{
dosomethingwithmy($item);
destroy($item);
}
Run Code Online (Sandbox Code Playgroud)
我只是在寻找处理大量物品的最佳方法,而不会耗尽资源.
尝试for循环:
$keys = array_keys($array);
for ($i=0, $n=count($keys); $i<$n; ++$i) {
$item = &$array[$keys[$i]];
dosomethingwithmy($item);
destroy($item);
}
Run Code Online (Sandbox Code Playgroud)
从资源角度来看,如果使用 for 循环而不是 foreach 循环,您的代码将会更加高效。foreach 循环的每次迭代都会复制内存中的当前元素,这将花费时间和内存。使用 for 并通过索引访问当前项目会更好更快。