是否有可能找到foreach索引?

在for循环中如下所示:

for ($i = 0; $i < 10; ++$i) {
   echo $i . ' ';
}

$i会给你索引。

我必须使用for循环还是有一些方法在foreach循环中获得索引?


当前回答

PHP数组有内部指针,所以试试这个:

foreach($array as $key => $value){
   $index = current($array);
}

对我来说还行(不过只是非常初步的测试)。

其他回答

这两个循环是等价的(当然除了安全栏杆):

for ($i=0; $i<count($things); $i++) { ... }

foreach ($things as $i=>$thing) { ... }

eg

for ($i=0; $i<count($things); $i++) {
    echo "Thing ".$i." is ".$things[$i];
}

foreach ($things as $i=>$thing) {
    echo "Thing ".$i." is ".$thing;
}
foreach($array as $key=>$value) {
    // do stuff
}

$key是每个$array元素的索引

当我必须在同一个上下文中使用foreach索引和值时,我用这种方法解决了:

$array = array('a', 'b', 'c');
foreach ($array as $letter=>$index) {

  echo $letter; //Here $letter content is the actual index
  echo $array[$letter]; // echoes the array value

}//foreach

我通常在使用关联数组时这样做:

foreach ($assoc_array as $key => $value) {
 //do something
}

这也适用于非关联数组。$key将是索引值。如果你喜欢,你也可以这样做:

foreach ($array as $indx => $value) {
  //do something
}

需要注意的是,您可以在任何数组上调用key()来查找当前所在的键。正如你所猜测的,current()将返回当前值,next()将移动数组的指针到下一个元素。