加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何存储和重置PHP数组指针?

发布时间:2022-10-25 14:30:50 所属栏目: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($prim

我有一个关联数组,即

$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数组,

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;

php指针_c语言中的空指针,空指针常量,null & 0_php指针

if ($p >= $root) break; } return true; }

它会破坏我正在迭代的数组指针.

我希望能够在IsPrime()函数中保存和恢复数组的内部指针,因此它没有这种副作用.有没有办法做到这一点?

解决方法:

不要依赖数组指针.请改用迭代器.

您可以使用以下代码替换外部代码:

foreach ($primes as $p) {
  if ($p > 10000 && IsPrime(doSomeCalculationsOn($p))) {
    return $p;
  }
}

总结

以上是编程之家为你收集整理的如何存储和重置PHP数组指针?全部内容,希望文章能够帮你解决如何存储和重置PHP数组指针?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错php指针,欢迎将编程之家网站推荐给程序员好友。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!