php 数组指针 销毁,如何存储和重置PHP数组指针?
$primes = array(
2=>2,
3=>3,
5=>5,
7=>7,
11=>11,
13=>13,
17=>17,
// ...etc
);
那我呢
// seek to first prime greater than 10000
reset($primes);
while(next($
我有一个关联数组,即 $primes = array( 2=>2, 3=>3, 5=>5, 7=>7, 11=>11, 13=>13, 17=>17, // ...etc ); 那我呢 // seek to first prime greater than 10000 reset($primes); while(next($primes) < 10000) {} prev($primes); // iterate until target found while($p = next($primes)) { $res = doSomeCalculationsOn($p); if( IsPrime($res) ) return $p; } 问题是IsPrime还遍历$primes数组php指针, function IsPrime($num) { global $primesto, $primes, $lastprime; if ($primesto >= $num) // using the assoc array lets me do this as a lookup return isset($primes[$num]); $root = (int) sqrt($num); if ($primesto < $root) CalcPrimesTo($root); foreach($primes as $p) { // if( $num % $p == 0 ) return false; if ($p >= $root) break; } return true; } 它会破坏我正在迭代的数组指针. 我希望能够在IsPrime()函数中保存和恢复数组的内部指针,因此它没有这种副作用.有没有办法做到这一点? 解决方法: 不要依赖数组指针.请改用迭代器. 您可以使用以下代码替换外部代码: foreach ($primes as $p) { if ($p > 10000 && IsPrime(doSomeCalculationsOn($p))) { return $p; } } (编辑:滁州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |