我是一名有用的助手,可以为您翻译文本。
所以我花了2个小时来尝试解决这个问题,尽可能地将代码缩小以隔离问题,但我无法解决这个问题。
所以我有这段代码:
这是一个无限循环。由于某种原因,在遍历完所有 $arr['key']['name'] 值之后,key() 函数返回0而不是NULL。然而,删除 $cur = current($arr); 可以解决此问题。根据php手册,
所以我花了2个小时来尝试解决这个问题,尽可能地将代码缩小以隔离问题,但我无法解决这个问题。
所以我有这段代码:
$arr['key']['name'] = array("one", "two", "three");
$counter = 0;
do
{
$cur = current($arr);
$k = key($arr['key']['name']);
next($arr['key']['name']);
}while($k !== null);
这是一个无限循环。由于某种原因,在遍历完所有 $arr['key']['name'] 值之后,key() 函数返回0而不是NULL。然而,删除 $cur = current($arr); 可以解决此问题。根据php手册,
current()
不会影响数组指针。现在我知道复制一个数组会重置其指针,但没有进行复制,即使有复制,$k 的值也会一直为零,而不是从 0 到 2 然后重置为 0。
next($arr['key']['name']);
,那么你需要使用$cur = current($arr['key']['name']);
。 - nickb