所以我花了 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 = 电流($arr);但是解决了这个问题。根据 php 手册,current()
根本不影响数组指针。现在我知道复制数组会重置它的指针,但没有复制正在进行,如果有$k将始终为零,而不是从 0 到 2 然后重置回 0。
current()
不会移动使用它的数组的数组指针,但您会在不同的数组上使用它。它正在重置嵌套数组的指针。
你为什么不这样做呢?
法典:
foreach ($arr['key']['name'] as $k)
{
// do something with $k
}