带零值的PHP遍历数组

带零值的PHP遍历数组,php,Php,我使用下面的循环遍历一个数组,其中需要值和键字段 while ($value = current($a)) { echo "$value ".key($a).'<br />'; next($a); } while($value=当前($a)){ 回显“$value”。键($a)。“”; 其次(a美元); } 问题是遍历只在数组中遇到while语句所说的“0”之前进行。是否有任何方法可以使用零值(数组大小不同)遍历数组并同时获取值和键。只需使用-loop: foreach($as

我使用下面的循环遍历一个数组,其中需要值和键字段

while ($value = current($a)) {

echo "$value ".key($a).'<br />';
next($a);
}
while($value=当前($a)){
回显“$value”。键($a)。“
”; 其次(a美元); }
问题是遍历只在数组中遇到while语句所说的“0”之前进行。是否有任何方法可以使用零值(数组大小不同)遍历数组并同时获取值和键。

只需使用-loop:

foreach($as$key=>$value){
回显“$value$key
”; }
它简单得多,听起来与您要查找的完全一样。

使用循环条件而不是
current
,并将其值与
null
进行比较:

key()
函数只返回内部指针当前指向的数组元素的键。它不会以任何方式移动指针。如果内部指针指向元素列表的末尾之外或数组为空,
key()
返回
NULL


改用
foreach
(这是一种比while循环更流行的遍历数组的方法)。使用foreach,我当然无法获得关键值。您看过文档了吗?为什么无法获取键值?您是否阅读了@Felix Kling建议的链接?使用这个:foreach(数组_表达式为$key=>$value){echo“key:.$key.”value:.$value;}我现在就知道了,谢谢:)。我试图使用foreach的类似方法来获取关键值。
foreach($a as $key => $value) {

  echo "$value $key <br />";

}
while (($key = key($a)) !== null) {
    $value = value($a);
    echo "$value $key<br />";
    next($a);
}
foreach ($a as $key => $value) {
    echo "$value $key<br />";
}