J'ai un tableau associatif, à savoirComment stocker et réinitialiser un pointeur de tableau PHP?
$primes = array(
2=>2,
3=>3,
5=>5,
7=>7,
11=>11,
13=>13,
17=>17,
// ...etc
);
alors je ne
// 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;
}
Le problème est que ISPRIME boucles aussi à travers le tableau des nombres premiers $,
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) { // <- Danger, Will Robinson!
if($num % $p == 0)
return false;
if ($p >= $root)
break;
}
return true;
}
qui Trashes le tableau pointeur Je suis en train de répéter.
J'aimerais pouvoir enregistrer et restaurer le pointeur interne de la baie dans la fonction IsPrime() afin qu'il n'ait pas cet effet secondaire. Est-ce qu'il y a un moyen de faire ça?
+1 pour Danger, Will Robinson! – n0nag0n