Php each():数组指针不';我不能正常工作 请考虑此代码 var_export ($dates); while (list($key, $date) = each($dates)) { echo("current = ".current($dates)); echo("key = " . key($dates)); }
结果是Php each():数组指针不';我不能正常工作 请考虑此代码 var_export ($dates); while (list($key, $date) = each($dates)) { echo("current = ".current($dates)); echo("key = " . key($dates)); },php,Php,结果是 Array ( [1359928800] => 1359928800 ) current = key = 我希望它会返回1359928800,我错在哪里了?为什么不使用$key和$date while (list($key, $date) = each($dates)) { echo("current = ".$date); // 1359928800 echo("key = " . $key); // 1359928800 } 为什么不使用$key
Array
(
[1359928800] => 1359928800
)
current =
key =
我希望它会返回
1359928800
,我错在哪里了?为什么不使用$key
和$date
while (list($key, $date) = each($dates))
{
echo("current = ".$date); // 1359928800
echo("key = " . $key); // 1359928800
}
为什么不使用
$key
和$date
while (list($key, $date) = each($dates))
{
echo("current = ".$date); // 1359928800
echo("key = " . $key); // 1359928800
}
在处理数组时,有一个不同的不太古老的构造用于处理迭代:foreach() 我建议以这种方式迭代数组。它更容易阅读,几乎不可能出错。此外,您不必担心在警告中提到的无限循环中结束的可能性
在处理数组时,有一种不同的不太古老的构造用于处理迭代:foreach()
我建议以这种方式迭代数组。它更容易阅读,几乎不可能出错。此外,您不必担心在警告中提到的无限循环中结束的可能性
原因是每个都已经向前移动指针
各国:
从数组返回当前键和值对,并前进数组光标
因此,在循环内部current
指的是下一个元素。在您的例子中,没有下一个元素,因此它是false
。您应该使用$key
和$date
或更好的方法,使用foreach
,就像已经建议的那样。原因是每个
都已经提前了指针
各国:
从数组返回当前键和值对,并前进数组光标
因此,在循环内部current
指的是下一个元素。在您的例子中,没有下一个元素,因此它是false
。您应该使用$key
和$date
或更好的方法,使用foreach
,就像已经建议的那样。您可能还没有从以前的操作中重置数组指针。为什么不直接使用foreach
循环呢?@impl这是最可能的解释。也许您应该将其作为答案发布。您可能还没有从以前的操作中重置数组指针。为什么不直接使用foreach
循环呢?@impl这是最可能的解释。也许你应该把它作为一个答案发布。实际上我需要使用prev,reset,next,foreach似乎不能使用它。foreach会自动将数组指针重置为数组的开头。也就是说,在迭代之前会自动调用reset()。如果这对您不起作用,抛出的错误是什么?如果您确实在使用数组,那么这应该是可行的。。foreach是在PHP4中实现的,您使用的是什么版本的PHP?实际上我需要使用prev,reset,接下来,foreach似乎不使用它。foreach会自动将数组指针重置为数组的开头。也就是说,在迭代之前会自动调用reset()。如果这对您不起作用,抛出的错误是什么?如果您确实在使用数组,那么这应该是可行的。。foreach是在PHP4中实现的,您使用的是什么版本的PHP?