所以我花了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()而不是返回NULL,再次返回0。删除$ cur = current($ arr);然而,解决了这个问题。 According to php manual,current()
根本不会影响数组指针。现在我知道复制一个数组会重置它的指针但是没有复制正在进行,如果有$ k将一直为零而不是从0变为2然后重置为0.
答案 0 :(得分:4)
current()
不会移动您使用它的阵列的数组指针,但是您在不同的数组上使用它。它正在重置嵌套数组的指针。
答案 1 :(得分:2)
你为什么不这样做?
代码:
foreach ($arr['key']['name'] as $k)
{
// do something with $k
}